Facebook更新PyTorch 1.1,深度學習CPU搶GPU飯碗


在一年一度的開發者大會F8上,Facebook放出PyTorch的1.1版本,直指TensorFlow“腹地”。

不僅宣佈支持TensorFlow的可視化工具TensorBoard,還正式向工業界邁進,新推出訓練 AI 系統”跨 GPU 分割神經網絡“功能。為生產環境改進了PyTorch處理分佈式訓練的方式。PyTorch路線圖的下一步是,以更少的比特數運行神經網絡,實現更快的CPU和GPU性能,並支持AI從業者創建命名張量維數。

PyTorch是Fackebok於2017年初在機器學和科學計算工具Torch的基礎上,針對Python語言發佈的一個全新的機器學習工具包。一經發布,PyTorch就受到了業界的廣泛關注和討論,目前PyTorch已經成為機器學習從業人員最重要的研發工具之一。

相較於更適合大規模部署,尤其是涉及跨平臺和嵌入式部署的TensorFlow,PyTorch更適合用於研究、愛好者和小規模項目的快速原型開發;而且在下面這些方面相當有優勢:用於研究或者用於生產的非功能性需求並不是很苛刻;需要更好的開發和調試經驗;愛所有Python化的東西。

對於深度學習從業人員來說,PyTorch是TensorFlow之外的一個絕佳選擇。通過學習瞭解不同深度學習框架,可以豐富其知識技能,針對實際業務需求選擇最合適的框架。學習他小編推薦《PyTorch深度學習》。


Facebook更新PyTorch 1.1,深度學習CPU搶GPU飯碗

《PyTorch與深度學習》

書籍領取:關注、私信小編【資料】就可以領取啦。

傳統機器學習算法使用手寫的特徵提取代碼來訓練算法,而深度學習算法使用現代技術自動提取這些特徵。

例如,一個用於預測圖像是否包含人臉的深度學習算法將在第一層檢查邊緣,第二層檢測鼻子和眼睛等形狀,最後一層檢測面部形狀或者更復雜的結構(見圖1.3)。每一層都基於前一層的數據表示進行訓練。如果大家覺得上面的解釋理解起來有些困難,請不要擔心,本書的後續章節會更直觀地構造和詳細解釋這樣的網絡。

Facebook更新PyTorch 1.1,深度學習CPU搶GPU飯碗

圖1.3 中間層的可視化輸出


得益於GPU、大數據、雲提供商如 Amazon Web Services(AWS)和Google Cloud,以及Torch、TensorFlow、Caffe和PyTorch這些框架的出現,深度學習的應用在過去幾年出現了巨大的增長。除此之外,一些大型公司還分享了已在龐大的數據集上訓練好的算法,因而使得後來者可以經過很少的改動就能夠以幾種用例為基礎構建最先進的系統。

深度學習的應用

深度學習一些流行的應用如下:

  • 接近人類水平的圖像分類;
  • 接近人類水平的語音識別;
  • 機器翻譯;
  • 自動駕駛汽車;
  • Siri、Google語音和Alexa在最近幾年更加準確;
  • 日本農民的黃瓜智能分揀;
  • 肺癌檢測;
  • 準確度高於人類的語言翻譯。

圖1.4所示為一個用於總結段落大意的簡例,計算機讀入一大段文本,並用幾行總結出中心語義。

Facebook更新PyTorch 1.1,深度學習CPU搶GPU飯碗


圖1.4 計算機生成的本文摘要

接下來,我們把圖1.5作為普通的圖片輸入給計算機,並不告知計算機圖像中展示的是什麼。藉助對象檢測技術和詞典的幫助,我們得到的圖像描述是:兩個小女孩正在玩樂高玩具。計算機太聰明瞭,不是嗎?


Facebook更新PyTorch 1.1,深度學習CPU搶GPU飯碗


圖1.5 對象檢測和圖像標註


深度學習的浮誇宣傳


媒體人士和人工智能領域外的人士,以及那些並非真正的人工智能和深度學習參與者,一直暗示說,隨著人工智能和深度學習的進步,電影Terminator 2: Judgement Day中的場景會成為現實。有些甚至在談論人類終將被機器人控制的時代,那時機器人將決定什麼對人類有益。目前而言,人工智能的能力被過分誇大了。現階段,大多數深度學習系統都部署在一個非常受控的環境中,並給出了有限的決策邊界。

我的想法是,當這些系統能夠學會做出智能決策,而非僅僅完成模式匹配,當數以千百計的深度學習算法可以協同工作,那時也許我們有希望見到類似科幻電影中一樣表現的機器人。事實上,我們尚不能實現通用的人工智能,即機器可以在沒有指示的情況下做任何事。現在的深度學習大多是關於如何尋找現有數據的模式並預測未來結果。作為深度學習業者,我們應該像區別信號和噪聲一樣區分這些不實說法。

深度學習發展史

儘管深度學習在最近幾年才開始廣為流行,但其背後的理論早在20世紀50年代就開始形成了。表1.1給出了現今深度學習應用中最受歡迎的技術和出現的大概的時間點。

深度學習這個術語過去有幾種不同的叫法。20世紀70年代我們稱之為控制論(cybernetics),20世紀80年代稱之為聯結主義(connectionism),而現在稱之為深度學習或神經網絡。我們將交替使用深度學習和神經網絡這兩個術語。神經網絡通常指的是那些受人腦運作啟發的算法。然而,作為深度學習的從業者,我們應明白神經網絡主要是由強大的數學理論(線性代數和微積分)、統計學(概率)和軟件工程激勵和支持的。

為何是現在

為何現在深度學習這麼流行?一些關鍵原因如下:

  • 硬件可用性;
  • 數據和算法;
  • 深度學習框架。

硬件可用性

深度學習要在數百萬甚至數十億的參數上進行復雜的數學運算。儘管過去這些年有所提高,但僅依靠現在的CPU執行這些運算極其耗時。一種叫作圖形處理單元(Graphics Processing Unit,GPU)的新型硬件在完成這些大規模的數學運算(如矩陣乘法)時可以高出幾個數量級。

GPU最初是Nvidia和AMD公司為遊戲產業而開發的。事實證明這種硬件極其高效。Nvidia最近的一款產品1080ti,僅用了幾天時間就構建了一個基於ImageNet數據集的圖像分類系統,而此前這需要大概1個月的時間。

如果打算購買用於深度學習的硬件,建議用戶根據預算選擇一款Nvidia的內存較大的GPU。記住,計算機內存和GPU內存並不相同,1080ti帶有大約11GB的內存,它的價格在700美元左右。

你也可以使用各種雲服務,如AWS、Google Cloud或Floyd(這家公司提供專為深度學習優化的GPU機器)。如果剛開始深度學習,或在財務受限的情況下為公司的應用配置機器時,使用雲服務就很經濟。

優化後的系統性能可能有較大提升。

圖1.6所示為不同CPU和GPU的性能基準的對比。


Facebook更新PyTorch 1.1,深度學習CPU搶GPU飯碗

圖1.6 基於不同CPU和GPU的神經網絡架構的性能基準

數據和算法

數據是完成深度學習最重要的組成部分,由於互聯網的普及和智能手機應用的增長,一些大公司,如Facebook和Google,可以收集到大量不同格式的數據,特別是文本、圖片、視頻和音頻這類數據。在計算機視覺領域,ImageNet競賽在提供1,000種類別中的140萬張圖片的數據集方面發揮了巨大作用。

這些圖像類別是手工標註的,每年都有數百個團隊參與競賽。過去比賽中一些成功的算法有VGG、ResNet、Inception、DenseNet等。現在這些算法已在行業中得到應用,用於解決各種計算機視覺問題。深度學習領域還有其他一些流行的數據集,這些數據集常被用於建立不同算法的性能基準:

  • MNIST;
  • COCO數據集;
  • CIFAR;
  • The Street View House Numbers;
  • PASCAL VOC;
  • Wikipedia dump;
  • 20 Newsgroups;
  • Penn Treebank;
  • Kaggle。

各種不同算法的發展,如批規一化、激活函數、跳躍式連接(skip connection)、長短期記憶網絡(LSTM)、dropout等,使得最近幾年可以更快並更成功地訓練極深度網絡。本書接下來的章節中,我們將深入每種技術的細節,以及如何使用這些技術構建更好的模型。


深度學習框架

在早期,人們需要具備C++和CUDA的專業知識來實現深度學習算法。現在隨著很多公司將它們的深度學習框架開源,使得那些具有腳本語言知識(如Python)的人,也可以開始構建和使用深度學習算法。今天,這個行業中流行的深度學習框架有TensorFlow、Caffe2、Keras、Theano、PyTorch、Chainer、DyNet、MXNet和CNTK。

如果沒有這些框架,深度學習的應用也不會如此廣泛。它們抽象出許多底層的複雜度,讓我們可以專注於應用。我們尚處於深度學習的早期階段,很多組織機構都在對深度學習進行大量研究,幾乎每天都有突破性的成果,因而,各種框架也都各有利弊。

PyTorch

PyTorch以及其他大多數深度學習框架,主要用於兩個方面:

  • 用GPU加速過的運算替代與NumPy類似的運算;
  • 構建深度神經網絡。

讓PyTorch越來越受歡迎的是它的易用性和簡單性。不同於其他大多數流行的使用靜態計算圖的深度學習框架,PyTorch使用動態計算,因此在構建複雜架構時可以有更高的靈活性。

PyTorch大量使用了Python概念,例如類、結構和條件循環,允許用戶以純面向對象的方式構建深度學習算法。大部分的其他流行框架引進了自己的編程風格,有時編寫新算法會很複雜,甚至不支持直觀的調試。後續章節將詳細討論計算圖。

儘管PyTorch新近才發佈並且還處於β版本,由於它的簡單易用和出色的性能、易於調試性,以及來自不同公司如SalesForce等的強大支持,PyTorch受到了數據科學家和深度學習研究人員的巨大歡迎。

由於PyTorch最初主要為研究目的而構建,因此不建議用於那些對延遲要求非常高的生產環境。然而,隨著名為Open Neural Network Exchange(ONNX)的新項目的出現,這種情況正在發生改變,該項目的重點是將在PyTorch上開發的模型部署到適用於生產的Caffe2這樣的平臺上。在本書寫作時,這個項目剛剛啟動,因而過多的定論還為時尚早。該項目了得到Facebook和微軟的支持。

在本書的其餘部分,我們將學習用於構建計算機視覺和自然語言處理領域的強大深度學習應用的各種模塊(較小的概念或技術)。


Facebook更新PyTorch 1.1,深度學習CPU搶GPU飯碗

書名:《PyTorch深度學習 》

書籍領取:關注、私信小編【資料】即可獲取

最後,關注可兒不迷路。每日都會分享一些學習小技巧。

相關推薦

推薦中...