深度學(xué)習(xí)這些概念都弄清楚了么?TF、TLT、TRT、DS....
最近遇到不少同學(xué)在使用NVIDIA GPU產(chǎn)品和SDK學(xué)習(xí)Deep Learning,經(jīng)常會(huì)看到這些詞語(yǔ),也很容易混淆。今天我們就來(lái)擼一擼。
在講這些概念之前,我們先掃盲一下啥叫深度學(xué)習(xí)(Deep Learning)吧。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,其特點(diǎn)是使用幾個(gè),有時(shí)上百個(gè)功能層。深度學(xué)習(xí)已經(jīng)從能夠進(jìn)行線性分類的感知器發(fā)展到添加多層來(lái)近似更復(fù)雜的函數(shù)。加上卷積層使得小圖像的處理性能有了提升,可以識(shí)別一些手寫數(shù)字?,F(xiàn)在,隨著大型圖像數(shù)據(jù)集的可用性和高性能并行計(jì)算卷積網(wǎng)絡(luò)正在大規(guī)模圖像上得到應(yīng)用,從而實(shí)現(xiàn)了以前不實(shí)用的廣泛應(yīng)用。
在這里,我們看到一些實(shí)際應(yīng)用的深度學(xué)習(xí)是如何被使用的。
深度學(xué)習(xí)擅長(zhǎng)的一個(gè)領(lǐng)域是圖像分類和目標(biāo)檢測(cè),可以用于機(jī)器人和自動(dòng)車輛以及其他一些應(yīng)用程序。對(duì)于機(jī)器人來(lái)說(shuō),目標(biāo)檢測(cè)是很重要的,因?yàn)樗箼C(jī)器人智能地使用視覺(jué)信息與環(huán)境交互。深度學(xué)習(xí)也用于人臉識(shí)別,可以通過(guò)視覺(jué)來(lái)驗(yàn)證個(gè)人的身份信息,常見(jiàn)于智能手機(jī)。但深度學(xué)習(xí)不僅僅是圖像處理,還可以用來(lái)做自然語(yǔ)言處理,比如智能音箱和語(yǔ)音輔助搜索。其他應(yīng)用還包括醫(yī)學(xué)圖像、解釋地震圖像判讀和內(nèi)容推薦系統(tǒng)。
很多應(yīng)用可以利用云端強(qiáng)大的性能,但有些應(yīng)用就不能,比如一些應(yīng)用程序需要低延遲,如機(jī)器人或自動(dòng)汽車,響應(yīng)時(shí)間和可靠性是至關(guān)重要的。還有應(yīng)用程序需要高帶寬,比如視頻分析,我們不斷地流數(shù)據(jù)從幾個(gè)攝像機(jī)傳輸給遠(yuǎn)程服務(wù)器是不實(shí)際的。還有些應(yīng)用比如醫(yī)療成像,涉及到病人數(shù)據(jù)的隱私。另外對(duì)于無(wú)人飛機(jī),也無(wú)法使用云。對(duì)于這些應(yīng)用我們需要在傳感器本身或者附近,就近處理,這就是為什么NVIDIA Jetson平臺(tái)是一個(gè)很好的邊緣計(jì)算平臺(tái)。
典型的Jetson平臺(tái)的工作流程是在GPU服務(wù)器或者工作站上進(jìn)行訓(xùn)練, 然后將訓(xùn)練的數(shù)據(jù)模型在Jetson上做邊緣推理。Nvidia通過(guò)為所有主要的深度學(xué)習(xí)軟件框架集成CUDA加速,使得訓(xùn)練模型變得容易。這些軟件框架簡(jiǎn)化了開發(fā)和部署深度學(xué)習(xí)應(yīng)用程序的過(guò)程。
這些框架大多有細(xì)微的差別,但每個(gè)框架通常都提供了構(gòu)建神經(jīng)網(wǎng)絡(luò)的方法和訓(xùn)練神經(jīng)網(wǎng)絡(luò)的算法。雖然有許多不同的框架,每個(gè)框架都有自己的好處,
TF-Tensorflow
Tensorflow就是深度學(xué)習(xí)框架之一
TensorFlow是種流行的深度學(xué)習(xí)框架,由谷歌公司開源。在TensorFlow里,神經(jīng)網(wǎng)絡(luò)被定義成一系列相關(guān)的操作構(gòu)成的圖,這些操作可能是卷積,也可能是矩陣乘法,還可能是其它的任意對(duì)每層的元素進(jìn)行變換的操作。雖然在訓(xùn)練的過(guò)程中,網(wǎng)絡(luò)層中的參數(shù)會(huì)發(fā)生變化,但網(wǎng)絡(luò)結(jié)構(gòu)不會(huì)。
在典型的工作流程中,開發(fā)人員通過(guò)在Python中進(jìn)行tensorflow API調(diào)用來(lái)定義計(jì)算圖形,Python調(diào)用創(chuàng)建一個(gè)圖形數(shù)據(jù)結(jié)構(gòu),完全定義神經(jīng)網(wǎng)絡(luò),然后開發(fā)人員可以使用明確定義的圖形結(jié)構(gòu)來(lái)編寫訓(xùn)練或推理過(guò)程。
TLT-Transfer Learning Toolkit
除了定義新的神經(jīng)網(wǎng)絡(luò)之外,很容易重新使用已經(jīng)由其他開發(fā)人員或研究人員定義和訓(xùn)練的現(xiàn)有網(wǎng)絡(luò),這些所謂的預(yù)訓(xùn)練網(wǎng)絡(luò)可以按原樣使用重新用于新任務(wù),叫遷移學(xué)習(xí)。 在遷移學(xué)習(xí)的情況下,開發(fā)人員將從已保存的文件中加載預(yù)先訓(xùn)練的參數(shù),然后使用新數(shù)據(jù)集運(yùn)行訓(xùn)練過(guò)程,這種技術(shù)通常會(huì)導(dǎo)致更高的準(zhǔn)確度,因?yàn)橛?xùn)練樣本少于從頭開始訓(xùn)練網(wǎng)絡(luò)。
NVIDIA推出的NVIDIA Transfer Learning工具包(TLT)主打“無(wú)需AI框架方面的專業(yè)知識(shí),即可為智能視頻分析和計(jì)算機(jī)視覺(jué)創(chuàng)建準(zhǔn)確而高效的AI模型。像零編碼的專業(yè)人士一樣發(fā)展。”
Transfer Learning Toolkit(TLT)是一個(gè)基于python的AI工具包,用于獲取專門構(gòu)建的預(yù)先訓(xùn)練的AI模型并使用您自己的數(shù)據(jù)進(jìn)行自定義。遷移學(xué)習(xí)將學(xué)習(xí)到的特征從現(xiàn)有的神經(jīng)網(wǎng)絡(luò)提取到新的神經(jīng)網(wǎng)絡(luò)。當(dāng)創(chuàng)建大型訓(xùn)練數(shù)據(jù)集不可行時(shí),經(jīng)常使用遷移學(xué)習(xí)。開發(fā)智能視覺(jué)AI應(yīng)用程序和服務(wù)的開發(fā)人員,研究人員和軟件合作伙伴可以將自己的數(shù)據(jù)用于微調(diào)經(jīng)過(guò)預(yù)先訓(xùn)練的模型,而無(wú)需從頭開始進(jìn)行培訓(xùn)。
針對(duì)特定用例(例如建筑物占用分析,交通監(jiān)控,停車管理,車牌識(shí)別,異常檢測(cè)等),NVIDIA已經(jīng)幫你準(zhǔn)備好了預(yù)訓(xùn)練模型,避免開發(fā)者從頭開始創(chuàng)建和優(yōu)化模型的耗時(shí)過(guò)程,從而讓你將工程工作從80周減少到大約8周,從而在較短的時(shí)間內(nèi)實(shí)現(xiàn)更高的吞吐量和準(zhǔn)確性。通過(guò)使用DeepStream部署視覺(jué)AI應(yīng)用程序,您可以釋放更大的流密度并進(jìn)行大規(guī)模部署。
預(yù)先訓(xùn)練的模型可加速AI訓(xùn)練過(guò)程,并從頭減少與大規(guī)模數(shù)據(jù)收集,標(biāo)記和訓(xùn)練模型相關(guān)的成本。NVIDIA專門構(gòu)建的預(yù)訓(xùn)練模型具有高質(zhì)量的生產(chǎn)質(zhì)量,可用于各種用例,例如人數(shù)統(tǒng)計(jì),車輛檢測(cè),交通優(yōu)化,停車管理,倉(cāng)庫(kù)運(yùn)營(yíng)等。
TRT-TensorRT
一旦網(wǎng)絡(luò)完成,就可以直接部署模型。然而,如果模型使用tensorRT進(jìn)行優(yōu)化,那么通常會(huì)有顯著的性能優(yōu)勢(shì)。TensorRT是由nvidia提供的,是一種優(yōu)化神經(jīng)網(wǎng)絡(luò)推理的加速器。
與tensorflow和其他框架不同,tensorRT不用于訓(xùn)練深度學(xué)習(xí)模型,而是在你完成訓(xùn)練時(shí) 使用tensorRT優(yōu)化模型以進(jìn)行部署,轉(zhuǎn)換過(guò)程重新構(gòu)建模型以利用高度優(yōu)化的GPU操作,從而降低延遲并提高吞吐量。
大家可以通過(guò)這個(gè)視頻來(lái)了解如何用TensorRT來(lái)部署模型
DS-Deepstream
深度學(xué)習(xí)是全球視頻分析應(yīng)用增長(zhǎng)的動(dòng)力,開發(fā)者們?cè)絹?lái)越多的在基于計(jì)算機(jī)視覺(jué)應(yīng)用中使用深度學(xué)習(xí)了。到2020年全球啟用的攝像頭達(dá)到10億,這是一個(gè)難以置信的原始傳感器數(shù)據(jù)量。有了這些數(shù)據(jù),人們、社會(huì)團(tuán)體和公司正在構(gòu)建強(qiáng)大的應(yīng)用,利用攝像頭和streaming分析來(lái)做一些東西,比如機(jī)場(chǎng)的入境管理,制造中心和工廠的產(chǎn)線管理、停車管理,還有客流分析應(yīng)用,這對(duì)構(gòu)建智慧城市是很重要的。零售分析也是另外一個(gè)很重要的使用場(chǎng)景,對(duì)于商店來(lái)說(shuō)可以幫助他們了解客戶想買什么....還有其它的行業(yè)應(yīng)用,這些都需要利用視頻分析從而讓人們具備更全面的洞察力。
NVIDIA Deepstream SDK是一個(gè)通用的Steaming分析框架,可以讓你從各個(gè)傳感器中構(gòu)建你自己的應(yīng)用。它實(shí)際上是一個(gè)建立在GStreamer之上的SDK,GStreamer是一個(gè)開源的多媒體分析框架。NVIDIA將Deepstream作為SDK,旨在加速流視頻分析所需的完整堆棧。它是一個(gè)模塊化的SDK,允許開發(fā)人員為智能視頻分析(IVA)構(gòu)建一個(gè)高效的管道。您在這里看到的是一個(gè)典型的IVA管道,由Deepstream插件構(gòu)建,它支持插件使用的底層硬件、管道的每個(gè)功能,并利用硬件體系結(jié)構(gòu)移動(dòng)數(shù)據(jù),而無(wú)需任何內(nèi)存拷貝。