賈揚清:希望Caffe成為深度學習領域的Hadoop

2021-01-10 CSDN技術社區

在深度學習(Deep Learning)的熱潮下,Caffe作為一個高效、實用的深度學習框架受到了廣泛的關注。了解Caffe研發的背景、願景、技術特色、路線圖及其開發者的理念,對於我們選擇合適的工具更好地進行深度學習應用的迭代開發大有裨益。《程式設計師》記者近日深度對話Caffe作者賈揚清,剖析Caffe的起源、目標、差異性、現存的一些問題和改進工作,以及未來的規劃。

起源故事

《程式設計師》:請介紹一下您自己與深度學習結緣的故事,以及開發Caffe的背景和初衷?

賈揚清:我經常和人開玩笑說,「我寫Caffe的原因是因為我不想寫畢業論文。」

我最早開始接觸深度學習大概是在2012年,主要是做sparse coding以及相關的特徵學習。在2013年的時候,我和伯克利心理學系的Thomas Griffith教授開始合作研究這樣一個問題:我們人類在個人成長過程中是如何形成「類別」這樣的概念。我們發表的文章提出了一個很好的概率框架來表達人的行為(參見我在NIPS 2013的文章),但是因為圖像上提取的特徵比較弱,所以可以外推的結果比較有限。2013年的時候,因為Alex Krizhevsky在ImageNet的成功,我開始考慮把CNN的特徵用到心理學的這個實驗上,於是就寫了Decaf。Decaf需要基於cuda-convnet來訓練,但是我們通過Decaf驗證了深度學習特徵的優異的可移植性(參見我們在ICML的Decaf文章)。這個應該算是我開始考慮實現一個完整的深度學習框架的初衷。

然後在2013年下半年的時候,NVIDIA的學術捐贈計劃送了我一塊K20 GPU,我當時正好在寫畢業論文,空閒之餘就準備把這個計劃實現出來(對一個研究生而言,GPU很貴的)。我從9月下旬開始,先自己攢了一個機器,然後大概花了兩個多月的時間寫了整個架構和ImageNet所需要的各個實現。起初純粹是因為興趣使然作為一個業餘的項目,後來因為越來越覺得有意思(寫代碼可能和玩遊戲上癮差不多),花在Caffe上的時間逐漸變成20%、40%、80%,後來在上下班的地鐵上也開始編程序,畢業論文倒是沒有太重視,所幸我的導師開明,也沒有說什麼。Caffe寫完以後在我們組裡面試用,大家都覺得它挺好使 - 比如Jeff和Ross利用Caffe的訓練代碼實現了R-CNN。到了11月份的時候,我開始考慮是不是要開源Caffe,然後12月份正式開源。順便一提,我的畢業論文最後是第二年5月份才寫完的。

在接下來的一年裡面Caffe開始吸引很多其他的用戶和開發人員,特別是NVIDIA開始幫助我們做更多的加速,Berkeley也成立了Berkeley Learning and Vision Center來組織和吸引工業界的研究人員共同開發多個開源項目(包括Caffe)。我畢業以後還在繼續和伯克利的同事開發Caffe,同時在Google繼續搞深度學習的應用和研究;我們在伯克利也建立了一個核心的Caffe團隊:Evan Shelhamer開始用他以前在開源社區的經驗來牽頭多方面的合作;Jeff Donahue在業餘時間還幫助Pinterest建立了他們的深度學習系統;Jonathan Long給Caffe提供了例如Python接口等等最新的特性。而且,Caffe開始吸引世界各地的人來嘗試和使用深度學習的技術,這個是我們所始料未及的。

哦,對了,因為Caffe的緣故,最開始的心理學項目反而被我擱下了,而後也是諸事繁雜,希望有一天我還能夠繼續回去完成那個項目。

《程式設計師》:在Caffe的開發過程中,哪些事情讓您印象深刻?克服的最大挑戰是什麼?

賈揚清:讓我印象最深刻的事情是,寫Caffe其實佔用了我寫畢業論文的時間,我最開始向我導師保證說十二月底可以寫完論文(因為年底就要開始工作了),結果半路跑去寫Caffe了,拖了好長時間的進度。有一次我和我導師開會說我個人的擔心,然後他問我「你是想多花時間寫一個大家估計不是很在意的畢業論文呢,還是多花時間寫一個將來大家都會用的系統?」我覺得博士生多年,我導師教我最多的就是分清主次,這一點我獲益良多。

另一個好玩的小事情是,我2013年在Google實習喝了太多的咖啡,起Decaf這個名字是為了督促自己把咖啡戒了。後來因為GPU速度快就起了Caffe這個名字。伯克利我們組的研究生都很喜歡Caffe,向我導師要經費買了一個冰滴咖啡的咖啡機,結果我們後來又天天喝Evan做的咖啡,戒不掉了。Caffe的核心開發人員在工作允許的範疇下還會做一些consulting的工作,郵箱名字也因此起了caffe-coldpress。

說到挑戰的話,Caffe是我做的第一個從零開始,而且有實際工程意義的項目,而且是初學GPU,所以在編程上開始還是挺困難的。但是我覺得最大的挑戰是決定應該以什麼方式來公布Caffe:是成立一個創業公司,是作為一個純科研不能商用的程序庫,還是作為一個完全開源的系統。每個方向都有人偏好,而且平心而論,開源這條道路也許在經濟上並不是最優的。我大概前後花了一個星期的時間來說服和我合作的每個人,甚至在一定時候需要用「這是我寫的框架,所以我應該有決定權」這樣的理由來解釋。強迫別人接受自己的觀點不是我的個性,所以我覺得很幸運最後大家都很支持這個決定。作出開源的決定應該是整個項目裡面最挑戰的一部分 - 寫代碼倒在其次了。

在Caffe之前,深度學習領域缺少一個完全公開所有的代碼、算法和各種細節的框架,導致很多的研究人員和博士生(例如我)需要一次又一次重複實現相同的算法,這不好。我覺得作為一個科研人員,還是需要有開放的胸懷來幫助整個社區的發展,所謂不忘初心,方得始終。反正咖啡還是買得起的,夫復何求呢。

社區生態及問題探討

《程式設計師》:作為一個開源工具,Caffe的社區建設和代碼管理情況如何?

賈揚清:Caffe目前主要還是一個伯克利主導,然後由github加上caffe-users郵件組所組成的一個比較鬆散和自由的社區。因為主要的貢獻者都還是學生(包括已畢業的學生),而且大家主要的工作也還在科研上面,所以社區主要是依靠Caffe的使用者來自發組成的。我們也在摸索一些新的方法,比如說邀請工業界熟悉Caffe,貢獻過Caffe的代碼的朋友來參與管理Caffe,或者組成一個簡單的committee/foundation來幫助代碼管理等等。實話說,Caffe在社區建設代碼管理上還是有很多可以進一步提高的地方,這方面我們也在繼續摸索。

《程式設計師》:經常有人說,好的開源工具不等於好的產品。我了解的Caffe的安裝和配置還比較複雜,有開發者評價說Caffe文檔好,上手方便。但那個巨大的protobuf配置文件就是個災難,而且改動代碼很麻煩。對於這個問題,有什麼解決辦法?或者說使用Caffe還需要一定的門檻?

賈揚清:Caffe的安裝和配置的確是一個比較讓人頭疼的問題,特別是如果不熟悉Linux或者不在Linux的系統上的話,安裝Caffe可能需要不少的一段時間。最近我們也在社區的幫助上面做一些改進,主要是:

NVIDIA在幫助我們將Caffe放到apt-get系統裡面,使得將來可以直接apt-get install caffe;

我們在完善各個layer的文檔,使得大家更容易地實現一些自己的算法;

在protobuf上,我們加入了Python Wrapper,可以藉助簡單的Python函數來定義網絡,而不是寫一個巨大的protobuf(GoogLeNet如果手寫有兩千多行… 的確有點發指)。

我在簡化一些Caffe的依賴關係,使得我們不需要編譯所有的庫(比如說leveldb,HDF5等等)也可以使用Caffe,或者可以根據自己需要選擇相應地庫文件來編譯。

總的來說,因為是個C++的框架,所以使用Caffe還是有一定的門檻,如果大家遇到問題,也可以在caffe-users@googlegroups.com上面發信交流。

《程式設計師》:另外有一位CSDN博主之前寫了Caffe使用體驗,談到套用原有模型很方便,但個性化就要讀原始碼,比較痛苦;Theano只是提供計算函數,搭Network的細節都是自己定,非常靈活,但速度不如Caffe。針對目前的深度學習框架,您主要關注哪些?您認為他們各自的優劣如何?開發者應該如何選擇?

賈揚清:我讀過那篇文章,的確,Caffe在文檔上相對還比較痛苦一些。這個主要是因為我們更多的定位在科研上面,假設說大家都會有一定的時間和精力來讀代碼。目前我們主要能做的是儘量多地公開一些樣例和教程,使得大家在各種應用上都能比較容易地找到和需求比較相似的例子。在文檔方面,我們也在增加一些代碼當中的文檔和注釋,但是因為我們主要的開發人員還是在校的學生,所以重心還是放在科研上。大家可以看見Caffe team最近開創性的工作很多,包括了classification,detection,segmentation,以及最近用LSTM來實現圖像描述這樣的工作等等。如果開源社區願意幫助提高現在的文檔水平的話,我們感激不盡:)

Theano和Caffe的定位稍微有點不同:Theano主要定位在更加容易地做一些快速的研究和迭代上,所以實現的方法很多時候是基於Python以及底層的C轉譯的。這樣做的好處是可以更加容易地修改代碼,但是優化上就不那麼容易。我的感覺是,可以採用Python這樣的語言來做很快的迭代,但是等到確定一個具體的算法以後,可能還是需要轉成C++/CUDA的代碼來達到比較好的速度。從這一點上,Caffe提供了Python Layer來幫助做一些prototype,應該會有幫助。

《程式設計師》:您長期在做CV方面的工作,能否透露Caffe在您的工作中的使用情況和實際效果?在基於Caffe的深度學習方面有什麼通用的優化技巧可以分享?

賈揚清:Caffe最開始的確就是為了在我們平時科研上使用所寫的,所以在伯克利我們所有涉及到Deep Learning的工作也都會基於Caffe來進行。我在Google也同時會使用Google Brain的大規模的機器學習框架DistBelief(參見Google在NIPS 2012的文章),但是我會經常使用Caffe來做一些快速的prototype和實驗,因為Caffe有著更小的系統框架,使得一些探索性的實驗更加容易一些。值得一提的是,Google的研究人員經常會使用各種自己熟悉的開源框架來進行小規模的研究,然後用DistBelief來作為一個通用的框架實現大規模產品級別的部署。

說到通用的優化技巧,我的經驗就是從簡單的實現開始,尋找到瓶頸以後再做具體的優化。一個比較直接的例子是Caffe的卷積層:我當時使用了一個將它轉化為矩陣乘積的方法來進行計算,雖然相對比較耗費內存,但是在實際應用中一度是最快的實現。後來因為卷積在Deep Learning當中的重要性,大家紛紛開始實現更加有效的算法(比如說cuDNN),解決了最初實現中的種種問題。

另外,我個人覺得在研究生階段,特別是機器學習的研究生階段,學一點實際的程式語言(比如C++和Python)是很有幫助的,我以前大部分程序都在Matlab下實現,但是改用C++和Python以後,發現Matlab下很難實現的很多優化,比如說多GPU,多個機器的通信等等,可以非常容易地實現出來,於是就不再用Matlab了(聽起來有點廣告嫌疑…)。

《程式設計師》:我們通常採用Linux+Caffe,但也有很多人在Windows下跑Caffe,我看到一個介紹,說Windows版本的Caffe比Linux版本還要快,整合cuDNN速度就更快了,是否存在這樣的情況?

賈揚清:我個人對此持謹慎的懷疑態度,因為主要的程序都是C++編寫的,所以應該在速度上沒有什麼差別,看到的不同可能只是因為在兩個平臺上編譯器優化不同的結果。因為編譯器的不同優化選項會影響到速度,所以我一般提及速度的比較的時候會比較謹慎。一般而言,只要底層的硬體相同,像Caffe這樣主要是數學計算的系統,速度應該是大同小異的。當然,也有可能Windows上的GPU驅動做的比Linux好,所以使得在GPU上運行速度比較快,這個是有可能的,但是我個人沒有太多經驗(我一般只用Linux和Mac)。

《程式設計師》:深度學習框架一般都整合CUDA、cuDNN,我看到NVIDIA最新推出的DIGITS率先支持Caffe,這需要Caffe進行一些特別的工作嗎?另外Caffe社區與NVIDIA開源團隊如何互動?

賈揚清:NVIDIA對於Caffe的支持非常好,這一點我們整個Caffe team也非常感謝。基本上,除了和NVIDIA的開發人員討論一些實現細節之外,我們沒有對DIGITS做任何特殊的改動。從一定的方面來說,這也說明整個框架很容易移植。NVIDIA對Caffe的支持主要在兩方面:軟體上提供CuDNN的整合和優化,以及硬體上對於科研的支持。我們Caffe的核心成員定期會和NVIDIA的團隊開會討論雙方的需求和遇到的問題,以及新版本發布的時候的測試、集成的流程。總的來說合作非常愉快,而且也獲得了不錯的成果。

《程式設計師》:大規模的並行在深度學習中的作用很重要,能否介紹Caffe並行版,包括單機多卡並行和多機並行的Roadmap和當前進度?

賈揚清:Caffe並行的實現應該很快就會整合進來,因為其實實現本身並不困難:我最近幾次報告都提到了基於MPI的實現方法。目前在伯克利我們有一個基於自己的機群所編寫的並行實現,Yahoo/Flickr在github上也有一個並行實現的pull request。什麼時候併入caffe的master branch其實主要是人手的問題,大家都在忙於實現新的算法,沒有太多精力處理代碼庫的問題… 我們在Berkeley目前也在尋求一位PostDoc來負責Caffe的日常維護和團隊管理,在這裡順便做個廣告。

《程式設計師》:知乎上有一個問題:「做一個基於C++的物體識別系統,Caffe只提供了Matlab和Python的接口的,C++要怎麼使用Caffe?希望能提供具體的配置(Linux下)和調用方法。」能否介紹Caffe在語言支持的選擇方面是如何考慮的?對於廣大的C++用戶,您有什麼建議?

賈揚清:Caffe主要的代碼其實都是C++的,所以C++比Python和Matlab更加容易集成一些。當然,因為C++本身的緣故,所以實現一些數據的預處理比Matlab和Python要更困難一些。對於C++的話,可能就是多讀Caffe的原始碼吧:) 另外Caffe的tutorial一般都有對應的樣例代碼,順著這些樣例找到相應的實現,可能比單純從底層讀代碼會更容易一些。

未來展望

《程式設計師》:與深度學習的發展和應用相比,您對Caffe目前的整體開發進度的滿意度如何?Caffe未來需要解決哪些問題、增加哪些特性或者做哪些方面的優化,能否從整體上介紹一下未來的研發計劃?

賈揚清:Caffe整體的開發進度還是非常令我感到驚訝的,特別是考慮到Caffe的核心成員只有五個人 - 我,Evan Shelhamer,Jon Long,Jeff Donahue和Sergio Guadarrama。每個人都有自己日常的科研和工程任務,但是同時我們還很好地保持了Caffe的維護和改進工作。最近我們正在做的工作主要是整合github上的各個pull request,包括多GPU計算、Python支持等等。

我覺得我們在CVPR 2015上的tutorial基本上概括了Caffe最近或者正在增加的特性:http://tutorial.caffe.berkeleyvision.org/。當然,我們一如既往地公開了所有的細節,包括源程序和訓練好的模型。目前我個人除了科研以外主要在做的是兩方面的內容,一方面是繼續開源Google最近在Deep Learning上的科研成果(比如說我參與的GoogLeNet),另一方面是重新設計Caffe的一些結構,使得它更模塊化,更容易在各種環境下部署。

《程式設計師》:現在很多雲服務商都提供了機器學習雲服務,Caffe基於雲服務的優化是如何規劃的?

賈揚清:據我所知,目前很多機器學習的雲服務都是基於簡單的模型,比如說線性的Logistic Regression等等來提供的。最近有許多公司開始提供更加複雜的機器學習服務,比如說Microsoft Project Oxford等等,也許將來我們就可以很容易地使用深度學習的最新成果了。對於Caffe而言,我們更多地注重在深度學習的研究上面,所以對於雲服務的優化並不是一個主要的方向。當然,我覺得Caffe的開發團隊非常優秀,所以將來也許會走一條和工業界更加緊密聯繫的道路。《程式設計師》:是否因為架構或者設計的原因,使得Caffe會存在一些天生不擅長的深度學習場景?Caffe訓練出來的模型和其他的框架產生的模型如何很好支持地轉化?

賈揚清:Caffe一開始主要是為了圖像領域的應用所設計的,所以在非圖像的問題,比如說一般的機器學習、語音識別等問題上,Caffe的框架並不一定是最優的。舉個例子,我們最近對於Caffe的數據結構做了一些修改,但是那之前Caffe的數據都需要強制定義成四維的Tensor:顯然,在很多應用當中這是不夠靈活的。根據我們從開發者社區得到的反饋,在很多非圖像的應用領域,包括語音、自然語言處理、金融數據處理等等,其實也有很多人在使用Caffe。我們最近也在繼續修改Caffe的框架,希望在不同領域的應用能夠更加方便。

關於模型在不同框架之間轉化的問題,我覺得我的回答是「與其用多個框架,不如優化一個框架」 - 客觀地說,Caffe在通用性和可移植性上比其他的框架(比如說基於Python的Theano和基於Lua的Torch)要靈活很多。Caffe的社區裡面也有愛好者提供不同框架之間的轉換代碼,如果的確需要的話,可以搜索一下。

《程式設計師》:目前大型網際網路公司的深度學習系統都依賴於GPU加速,當然Caffe也支持無GPU模式,您如何看待非GPU加速的深度學習的前景?比如在FPGA加速或者未來基於神經網絡晶片的系統,Caffe會如何支持?

賈揚清:非GPU加速的深度學習目前而言還是有一定的優勢的,因為如果計算GPU的成本,目前雲端服務的價格還是很貴 - 這主要是因為GPU本身帶來更多成本,比如前期投入以及後期的維護等等。GPU的更新換代也會導致投入和產出的平衡更加難以計算。如果深度學習被證明有著巨大的產品需求的話,我覺得FPGA以及ASIC這樣的專用晶片會逐漸出現並且佔據市場 - 畢竟在固定算法的前提下,它們在速度上和成本上都有著巨大的優勢。

在Caffe的支持上,我個人並不是非常擔心,因為深度學習的模型都可以用比較通用的數學函數表達出來。舉個例子,在沒有GPU的時候,深度學習的算法都是在CPU上實現的;在GPU出現以後,模型還是一樣的模型,但是速度得到了一個數量級的提高。我覺得FPGA也會一樣,只要有晶片的產品以後,由Caffe(或者其他深度學習的框架)所訓練的模型只需要相應的實現代碼就可以重現。當然,軟硬體的同步開發也是需要的。

《程式設計師》:業界已經有人嘗試深度學習在智能設備上的應用,晶片廠商在研究嵌入式視覺SoC,您自己也嘗試過Raspberry Pi和Jetson,您如何看待嵌入式系統深度學習的趨勢?在這方面Caffe還能夠做些什麼?

賈揚清:嵌入式的深度學習應該是一個大的趨勢 - 就像百度IDL的創始人餘凱博士說的一樣,「世界終歸是屬於做機器人的人」。從廣義上來說,各種智能設備都可以歸為機器人的範疇。目前而言深度學習的大部分算法還是基於雲端的計算,但是隨著最近幾年計算能力飛速提高,很多算法已經可以在嵌入式晶片(比如說NVIDIA的Tegra K1)上實時地運行了。想像一下,如果我們身邊的每一個設備,從汽車到冰箱都是智能的,這該是多麼美好的一件事情!這樣的想法其實很早以前就有了(我記得我讀初中的時候就聽說過微軟的智能家居的計劃),但是我覺得現在我們站在一個技術的拐點上,也許可以真正實現以前的這些夢想。

從一定意義上說,希望深度學習在所有平臺上都可以運行,這也是我最開始寫Caffe的希望,也是為什麼我選了C++而不是其他的語言。我目前正在修改一些Caffe的架構,希望能夠更加容易地實現模塊化的設計:核心Caffe代碼是最小化和完全可移植的,然後可以根據需求來增加各種其他的模塊。希望這樣一來,Caffe的應用都能很高效地自定義到各種平臺上面。

《程式設計師》:最後,請談談您對Caffe在深度學習領域的未來有什麼期待?

賈揚清:用一句話來說,我希望Caffe能夠成為機器學習和深度學習領域的Hadoop:人人了解,人人使用,人人獲益。目前而言,深度學習領域的發展日新月異,各種框架發展非常迅猛,但是一定程度上也導致很多具體實現的碎片化。我個人的希望是通過不斷改進Caffe本身的框架、代碼、優化和周邊各種支持,將Caffe變成一個業界標準的框架,提供一個相對普適的平臺,讓大家能更好地交流科研的成果,以及更快地將這些成果轉化到實際的應用中去。

作者簡介:賈揚清,擁有加州大學伯克利分校計算機科學博士學位、清華大學碩士學位和學士學位,曾於新加坡國立大學、微軟亞洲研究院、NEC美國實驗室、Google研究院實習或工作,現就職於Google,從事機器視覺(Computer Vision)研究工作。

責任編輯:周建丁(zhoujd@csdn.net)

本文選自程式設計師電子版2015年7月A刊,該期更多文章請查看這裡。2000年創刊至今所有文章目錄請查看程式設計師封面秀。歡迎訂閱程式設計師電子版(含iPad版、Android版、PDF版)。

本文為《程式設計師》電子刊原創文章,如需轉載請註明出處

相關焦點

  • EC2上的深度學習:CUDA 7/cuDNN/caffe/DIGITS實戰教程
    圖像分類的卷積深度神經網絡(DNN)對於圖像的分類或回歸,你有兩種選擇: 特徵工程及把圖像轉換為向量; 依賴於一個卷積DNN求出特徵。 深度神經網絡對計算的要求相當苛刻。NVIDIA DIGITS和caffe利用GPU支持深度學習的主流框架目前有三個,包括Theano、Torch和caffe。 NVIDIA DIGITS則是一個網絡伺服器,它提供了一個方便的網絡接口,用於訓練和測試基於caffe的深度神經網絡。我打算在以後的文章中涵蓋如何使用caffe工作。在這裡,我會告訴你如何設置CUDA。
  • 阿里雲賈揚清:人工智慧是大數據業務發展的終極出口
    12月13日,阿里雲計算平臺負責人賈揚清在Flink Forward Asia 2020峰會上指出,擁抱「融合」是大數據演進的新方向,大數據和人工智慧一體化是必然趨勢,而人工智慧是大數據業務發展的終極出口。同時,他從不同角度討論了Flink的開源技術,以及雲時代下開源技術的發展和未來思考。
  • 阿里雲賈揚清:大數據和人工智慧一體化是必然趨勢
    Flink不再是一個居廟堂之高的技術,而是成為開源流式處理的事實標準,飛入「尋常百姓家」。比如中國信通院使用了Flink作為技術藍本設計流式處理標準,雲計算公司包括阿里雲等均使用Flink作為流式處理的底層引擎。● 社群。Flink開源社區高速增長,登頂Apache最活躍的郵件列表; Flink項目是Github提交次數最多的Apache頂級項目之一。
  • Caffe作者賈揚清最新訪談:再讀博士生,還是覺得idea最重要
    當時我們在Berkeley希望用Caffe來推動獨立研究,所以當時內部開始試圖來呈現它的結果,相當是一個於side results。整個過程大概做了兩個月。Alex: 後來到了Facebook之後繼續做Caffe你有遇到什麼新的問題嗎?
  • PaddlePaddle深度學習開源平臺:等待眾人划槳的中國AI大船
    當深度學習發展起來以後,相似的一幕又一次上演,最早自己寫反向傳導,測試的時候戰戰兢兢,深怕哪裡寫錯一點功虧一簣。到後來,有了caffe、有了theano、有了TensorFlow、有了mxnet、有了上層封裝的keras,也有了越來越多的model zoo。
  • 深度學習在圖像取證領域中的進展
    圖像取證深度學習之風不同於傳統的圖像取證算法,深度學習算法將特徵提取和特徵分類整合到一個網絡結構中,實現了一種end-to-end的自動特徵學習分類的有效算法。從當前的研究工作來看,深度學習應用於圖像取證領域大致可分為三個層次。第一個層次是簡單的遷移,即直接將CV領域常用的CNN網絡結構引入到圖像取證領域。
  • 多媒體領域中,深度學習有何進展?
    深度學習原理 第三次人工智慧浪潮已經開啟。當1956年人工智慧開始起步的時候,人們更多是在說人工智慧;在第二次浪潮期間,機器學習成為主流;這一次則是深度學習,是能夠自我學習、自我編程的學習算法,可以用來解決更複雜的任務。 深度學習究竟意味著什麼?
  • 盤點四大民間機器學習開源框架:Theano、Caffe、Torch和SciKit-learn
    TheanoTheano 在深度學習框架中是祖師級的存在。它的開發始於 2007,早期開發者包括傳奇人物 Yoshua Bengio 和 Ian Goodfellow。Theano 基於 Python,是一個擅長處理多維數組的庫(這方面它類似於 NumPy)。當與其他深度學習庫結合起來,它十分適合數據探索。它為執行深度學習中大規模神經網絡算法的運算所設計。
  • 大數據架構師基礎:hadoop家族,Cloudera系列產品介紹
    大數據我們都知道hadoop,可是還會各種各樣的技術進入我們的視野:Spark,Storm,impala,讓我們都反映不過來。
  • 2012年至今,細數深度學習領域這些年取得的經典成果
    該論文也被視作深度學習領域的經典之作。從原理來看,深度學習與神經網絡緊密相關:神經網絡由一層一層的神經元構成,層數越多,神經網絡越深,而所謂「深度學習」就是模擬人類大腦,運用深層神經網絡對輸入進行「思考」、「分析」並獲得目標輸出的過程。
  • 8臺Hadoop伺服器進行集群規劃前配置
    >集群規劃如下:(伺服器編號為hadoop221-hadoop228)註:1、NameNodes和zkfc一一對應;2、DataNode和NodeManager都是works文件配置;3、Zookeeper至少3個,必須奇數臺;
  • Facebook 爆錘深度度量學習:該領域13年來並無進展!網友:滄海橫流...
    FB和康奈爾科技此論無疑是對深度度量學習過去十三年研究成果蓋棺定論,斬釘截鐵表示,雖然深度度量學習非常重要,但是學界這些年一直在灌水。損失函數對度量學習很重要在綜述論文開頭,FB和康奈爾先肯定了深度度量學習的重要性,他們表示:深度度量學習已成為近年來機器學習最具吸引力的研究領域之一,如何有效的度量物體間的相似性成為問題的關鍵。
  • 日媒:AI深度學習發展迅速 倫理討論成為課題
    該軟體的特點是隨著技術進步,獲得了通過反覆自我學習做出判斷的能力。同類技術正在擴大到產業和醫療等各種領域。也有預測認為人類從事的工作未來將用計算機來替代。日本共同社5月26日報導稱,包括AI和人類如何進行職能分工等,倫理層面的討論或成為課題。
  • 如何使用深度學習模型構建推薦系統?(具體案例分析)
    全文共3095字,預計學習時長9分鐘來源:Pexels本文將解釋如何整合深度學習模型,構建服裝推薦系統。我們想要建立一個服裝推薦系統,可以使用四種深度學習模型來獲取用戶服裝使用的重要特徵。圖2:推薦系統的體系結構模型集成所有代碼都是使用一些計算機視覺庫(如 OpenCV)和一些深度學習框架(如Keras)在 Python3.5
  • 大數據入門:Hadoop HDFS存儲原理
    HDFS即Hadoop distributed file system(hadoop分布式文件系統),在Hadoop當中負責分布式存儲階段的任務,它是一個分布式的文件系統,也可以用來存放單個機器的數據,只是大部分用來存儲分布式數據。HDFS跟window下的NTFS一樣可以通過目錄樹來查找數據。
  • GPU是深度學習系統所必需的嗎?
    直到開始接觸人工智慧和數據科學領域,尤其是深度學習之後,我才意識到了顯卡的真正潛力。就像夢想照進了現實——只用一片簡單的顯卡,就能同時滿足學習和研究的需求,真是妙啊。(註:GPU和顯卡是一個意思,在本文中互換使用。)經過優化的GPU可用於訓練人工智慧和深度學習系統,因為它們可同時處理多個計算。這些系統有大量的內核,可以更好地計算大量並行進程。
  • 專訪DeepScale:深度學習加前融合,這家公司想做自動駕駛領域的感知...
    DeepScale是矽谷一家專注於自動駕駛感知技術的公司,其CEO Forrest Iandola在本月接受雷鋒網採訪時表示,他們能將深度學習同時用於攝像頭以外的傳感器數據上,如雷達與雷射雷達,並在較為廉價的嵌入式設備上提供感知解決方案。
  • 2020年深度學習發展大盤點及對2021年深度學習的未來展望|極客雲算
    深度學習框架作為AI底層工具,對個人而言是進入深度學習世界的一把鑰匙,掌握深度學習框架並不等於理解了深度學習,要在AI開發中有所作為,關鍵還是要真正理解框架背後的技術、實踐和生態。隨著近年來的人工智慧發展,2020年深度學習依然是發展最快的領域之一,直奔未來工作。其發展是多方面的,而且是多方位的。
  • Facebook人工智慧實驗室主任的深度學習之路
    【編者按】目前,各大科技巨頭包括谷歌、微軟等都在大力發展深度學習技術,通過各種方式挖掘深度學習人才,馬克•扎克伯格任命Yann LeCun擔任Facebook人工智慧實驗室主任。這些高科技公司正在探索深度學習的一種特殊形態——卷積神經網絡,對於可視化卷積神經網絡, LeCun的付出遠甚於他人。
  • 基於Pre-trained模型加速模型學習的6點建議
    像卷積神經網絡( CNN )這樣的深度學習模型具有大量的參數;一般稱之為超參數,因為它們不是固定值,需要迭代優化。通常可以通過網格搜索的方法來查找這些超參數的最佳值,但需要大量硬體和時間開銷。那麼,一個真正的數據科學家是否滿足於只是猜測這些超參數呢?答案當然是否定的。