99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用PyTorch、TensorFlow框架掌握深度學(xué)習(xí)

新機(jī)器視覺 ? 來源:CSDN ? 作者:Martin Heller ? 2022-07-05 15:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

如果你需要深度學(xué)習(xí)模型,那么 PyTorch 和 TensorFlow 都是不錯(cuò)的選擇。

并非每個(gè)回歸或分類問題都需要通過深度學(xué)習(xí)來解決。甚至可以說,并非每個(gè)回歸或分類問題都需要通過機(jī)器學(xué)習(xí)來解決。畢竟,許多數(shù)據(jù)集可以用解析方法或簡(jiǎn)單的統(tǒng)計(jì)過程進(jìn)行建模。

另一方面,在某些情況下,深度學(xué)習(xí)或深度遷移學(xué)習(xí)可以幫助你訓(xùn)練更準(zhǔn)確的模型。在這些情況下,你可以考慮使用 PyTorch 和 TensorFlow ,特別是如果你所需的訓(xùn)練模型與其中一個(gè)框架模型庫中的模型類似。

【PyTorch】

PyTorch 建立在舊版的 Torch 和 Caffe2 框架之上。如其名所示,PyTorch采用了腳本語言 Python,并利用改版后的Torch C/CUDA作為后端。PyTorch 項(xiàng)目還融入了 Caffe2 的生產(chǎn)功能。

PyTorch 被稱為“擁有強(qiáng)大 GPU 加速功能的 Python 版 Tensor 和動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)?!边@意味著什么?

Tensor(張量)是一種物理學(xué)和工程學(xué)中廣泛使用的數(shù)學(xué)結(jié)構(gòu)。2 階的 Tensor 是一種特殊的矩陣;而對(duì)向量和張量取內(nèi)積就可以得到另一個(gè)擁有新長(zhǎng)度和新方向的向量。TensorFlow 這個(gè)名字就來自張量在其網(wǎng)絡(luò)模型中流動(dòng)的方式。NumPy 也用到了 Tensor,名為 ndarray 。

GPU 加速是大多數(shù)現(xiàn)代深度神經(jīng)網(wǎng)絡(luò)框架的基礎(chǔ)。動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)是一種特殊的神經(jīng)網(wǎng)絡(luò),每次迭代都會(huì)發(fā)生變化,例如,PyTorch 模型可以在訓(xùn)練期間通過添加和刪除隱藏層,來提高其準(zhǔn)確性和通用性。

PyTorch 會(huì)在每個(gè)迭代中實(shí)時(shí)重建計(jì)算圖。相比之下,在默認(rèn)情況下TensorFlow 會(huì)創(chuàng)建一個(gè)計(jì)算圖,優(yōu)化圖代碼以提高性能,然后訓(xùn)練模型。

雖然急切執(zhí)行模式在 TensorFlow 中剛剛出現(xiàn),但其是 PyTorch 唯一的運(yùn)行方式:API 在被調(diào)用時(shí)會(huì)立即執(zhí)行,而不會(huì)被添加到計(jì)算圖稍后再運(yùn)行。這樣可能看起來計(jì)算效率會(huì)低一些,但是 PyTorch 設(shè)計(jì)的工作方式就是如此,而且實(shí)際上在訓(xùn)練或預(yù)測(cè)速度方面并不遜色。

PyTorch 通過集成加速庫,比如英特爾 MKL、Nvidia cuDNN 和 NCCL 等,最大限度地提升速度。其核心CPU、GPU Tensor和神經(jīng)網(wǎng)絡(luò)后端TH(Torch)、THC(Torch CUDA)、THNN(Torch神經(jīng)網(wǎng)絡(luò))和THCUNN(Torch CUDA神經(jīng)網(wǎng)絡(luò))等,都是使用 C99 API 編寫的單獨(dú)庫。同時(shí),PyTorch 并不是整體式 C++ 框架的 Python 綁定。其目的是與Python 深度集成,并允許使用其他 Python 庫。

【Fast.ai與fastai庫】

Fast.ai 是一家小公司,他們通過為編程人員提供免費(fèi)課程、軟件庫、尖端研究和社區(qū),降低深度學(xué)習(xí)的難度,并吸引更多各種背景的人。

fastai 庫基于 PyTorch,通過現(xiàn)代化的最佳實(shí)踐簡(jiǎn)化了快速準(zhǔn)確的神經(jīng)網(wǎng)絡(luò)訓(xùn)練。它基于對(duì) Fast.ai 深度學(xué)習(xí)最佳實(shí)踐的研究,提供了包括視覺、文本、表格和協(xié)作(協(xié)作過濾)模型在內(nèi)的“開箱即用”支持。

fastai 庫與 PyTorch 的關(guān)系非常類似于 Keras 與 TensorFlow 。但明顯的區(qū)別在于,PyTorch 沒有正式支持 fastai 。

【TensorFlow】

TensorFlow 是眾多優(yōu)秀的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)框架中最成熟的一個(gè),也是研究論文中引用最多的一個(gè)(即使不算來自谷歌員工的引用也是第一),而且在生產(chǎn)中的使用效果也很好。它可能不是最容易學(xué)習(xí)的框架,但隨著 TensorFlow 2的到來,TensorFlow 的門檻也沒有 2016 年那般高了。TensorFlow 是許多 Google 服務(wù)的基礎(chǔ)。

TensorFlow 2.0 官網(wǎng)對(duì)該項(xiàng)目的描述為:“端到端的開源機(jī)器學(xué)習(xí)平臺(tái)?!保雀柰ㄟ^“平臺(tái)”提供了一個(gè)包含工具、庫以及社區(qū)資源的全方位生態(tài)系統(tǒng),研究人員可以利用這個(gè)平臺(tái)“推動(dòng)機(jī)器學(xué)習(xí)達(dá)到最高水準(zhǔn)”,而開發(fā)人員則可以利用這個(gè)平臺(tái)輕松構(gòu)建和部署基于 AI 的應(yīng)用程序。

TensorFlow 2.0 有四個(gè)主要部分組成:

TensorFlow 核心,一個(gè)用于開發(fā)和培訓(xùn)機(jī)器學(xué)習(xí)模型的開源庫;

TensorFlow.js,一個(gè)在 Web 瀏覽器和 Node.js 上訓(xùn)練和部署模型的 JavaScript庫;

TensorFlow Lite,一個(gè)輕量級(jí)庫,用于在移動(dòng)和嵌入式設(shè)備上部署模型;

TensorFlow Extended,是一個(gè)端到端平臺(tái),用于在大型生產(chǎn)環(huán)境中準(zhǔn)備數(shù)據(jù)、培訓(xùn)、驗(yàn)證和部署模型。

TensorFlow 2.0 的重點(diǎn)放在了簡(jiǎn)單性和易用性上,其這個(gè)版本擁有一系列的新功能,包括急切執(zhí)行、直觀的高級(jí) API 以及可以在任何平臺(tái)上構(gòu)建模型等。急切執(zhí)行意味著 TensorFlow 代碼定義好就可以運(yùn)行,而 TensorFlow 最初的模式需要將節(jié)點(diǎn)和邊添加到計(jì)算圖中,稍后再在會(huì)話中運(yùn)行。

高效地使用 TensorFlow 2.0 方法是,使用高級(jí)的 tf.keras API(而不是舊的低級(jí) AP,這樣可以大大減少需要編寫的代碼量。只需要使用一行代碼就可以構(gòu)建 Keras 神經(jīng)網(wǎng)絡(luò)中的一層,如果利用循環(huán)結(jié)構(gòu),則可以進(jìn)一步減少代碼量。

TensorFlow.js 是一個(gè)利用 JavaScript 開發(fā)和訓(xùn)練機(jī)器學(xué)習(xí)模型,并在瀏覽器或 Node.js 中部署模型的庫。在 TensorFlow.js、ml5.js 之上還有一個(gè)高級(jí)庫,它隱藏了張量和優(yōu)化器的復(fù)雜性。

TensorFlow.js 可以通過瀏覽器支持移動(dòng)設(shè)備和桌面設(shè)備。如果你的瀏覽器支持 WebGL 著色器 API,TensorFlow.js 可以利用它們發(fā)揮 GPU 的優(yōu)勢(shì)。與CPU 后端相比,這可以為你提供高達(dá) 100 倍的加速。在擁有 GPU 的計(jì)算機(jī)上,TensorFlow.js 可以非??焖俚卦跒g覽器中運(yùn)行。

TensorFlow Lite 是一個(gè)用于移動(dòng)設(shè)備的開源深度學(xué)習(xí)框架。目前它可以為iOS、ARM64 和 Raspberry Pi 構(gòu)建模型。TensorFlow Lite 有兩個(gè)主要組件:解釋器和轉(zhuǎn)換器。解釋器可以在許多不同的硬件類型上運(yùn)行經(jīng)過特別優(yōu)化的模型。轉(zhuǎn)換器可以將 TensorFlow 模型轉(zhuǎn)換為高效的形式供解釋器使用,還可引入優(yōu)化以縮小可執(zhí)行文件大小并提高性能。

TensorFlow Extended(TFX)是用于部署生產(chǎn)機(jī)器學(xué)習(xí)管道的端到端平臺(tái)。在你訓(xùn)練好一個(gè)模型后,就需要考慮這方面的工作了。管道包括數(shù)據(jù)驗(yàn)證、功能工程、建模、模型評(píng)估、服務(wù)推斷以及管理在線、原生移動(dòng)和 JavaScript 目標(biāo)的部署。

【Keras】

Keras 是用于構(gòu)建神經(jīng)網(wǎng)絡(luò)模型的高級(jí)前端規(guī)范和實(shí)現(xiàn)。Keras 支持三種后端深度學(xué)習(xí)框架:TensorFlow、CNTK 和 Theano。目前亞馬遜正在全力為Keras 開發(fā) MXNet 后端。你也可以使用 PlaidML(一個(gè)獨(dú)立的項(xiàng)目)作為Keras 的后端,利用 PlaidML 的 OpenCL 支持所有 GPU 的優(yōu)勢(shì)。

TensorFlow是Keras的默認(rèn)后端,在很多情況下我們也推薦使用TensorFlow,包括通過 CUDA 和 cuDNN 在 Nvidia 硬件上實(shí)現(xiàn) GPU 加速,以及利用 Google Cloud 中的 Tensor 處理單元加速等。Keras 除了可以單獨(dú)安裝之外,TensorFlow 還包含一個(gè)內(nèi)部 tf.keras 類。如上所述,這是TensorFlow 的首選高級(jí)前端。

Keras 提供了一個(gè)高級(jí)環(huán)境,在其 Sequential 模型中向神經(jīng)網(wǎng)絡(luò)添加一層的代碼量可以縮減到一行,編譯和訓(xùn)練模型也分別只需一個(gè)函數(shù)調(diào)用。如果有需要,Keras 也允許你通過其 Model 或函數(shù)式 API 接觸較低層上的代碼。

你還可以利用 Keras 的子類 keras.Model 進(jìn)一步深入,一直到 Python 代碼級(jí)別,直到找到你喜歡的功能 API 。另外,它還有 Scikit-learn API,因此你可以利用 Scikit-learn 網(wǎng)格搜索在 Keras 模型中執(zhí)行超參數(shù)優(yōu)化。

【深度學(xué)習(xí)與遷移學(xué)習(xí)】

PyTorch 和 TensorFlow 都支持深度學(xué)習(xí)和遷移學(xué)習(xí)。遷移學(xué)習(xí)(有時(shí)稱為自定義機(jī)器學(xué)習(xí))可以從預(yù)先訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型開始,只需為你的數(shù)據(jù)定制最終層即可。

從頭開始訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)非常耗時(shí),并且需要大量標(biāo)記數(shù)據(jù)。遷移學(xué)習(xí)花費(fèi)的時(shí)間更少,而且需要的新標(biāo)記樣本更少,但只有在模型已預(yù)先訓(xùn)練好的情況下,你才可以使用遷移學(xué)習(xí)。幸運(yùn)的是,所有主流的深度學(xué)習(xí)框架都提供了某種形式的模型庫供你挑選模型。

圖像分類中使用的卷積神經(jīng)網(wǎng)絡(luò)(也稱為 ConvNets 或 CNN )是遷移學(xué)習(xí)的代表。PyTorch 和 TensorFlow 都提供了有關(guān)如何使用遷移學(xué)習(xí)來訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的教程。TensorFlow 的遷移學(xué)習(xí)教程演示了如何使用遷移學(xué)習(xí)提取和微調(diào)特征。PyTorch 的遷移學(xué)習(xí)教程也演示了相同的兩種方法。

以下是這些筆記中提到的一個(gè)關(guān)鍵點(diǎn):

實(shí)際上,很少有人從頭開始訓(xùn)練整個(gè)卷積網(wǎng)絡(luò)(利用隨機(jī)的初始化),因?yàn)槟愫茈y擁有足夠大的數(shù)據(jù)集。相反,一般人們會(huì)在非常大的數(shù)據(jù)集(例如ImageNet,其中包含 1,000 個(gè)類別的 120 萬個(gè)圖像)上預(yù)先訓(xùn)練ConvNet,然后以 ConvNet 為起點(diǎn)或通過 ConvNet 提取感興趣的特征。

【如何選擇深度學(xué)習(xí)框架】

在 PC 和 Mac 出現(xiàn)的早期,人們經(jīng)常會(huì)問我應(yīng)該買哪個(gè)。其實(shí),這個(gè)問題沒有正確的答案,因?yàn)檫@個(gè)問題本身就是一個(gè)錯(cuò)誤,或者我應(yīng)該說“那要看你想用這臺(tái)電腦干什么”,但一般在我問他們幾個(gè)問題后,他們就能找到自己的答案,比如“你想用這臺(tái)電腦干什么?”,或者“你有什么不可或缺的應(yīng)用嗎?”

同樣,“我應(yīng)該使用哪種深度學(xué)習(xí)框架?”也算不上一個(gè)真正的問題。這個(gè)問題同樣取決于你自己,比如首先想一想“你想用你的模型干什么?”,然后再深入研究你可以用于訓(xùn)練的數(shù)據(jù)類型。

如果你不熟悉深度學(xué)習(xí),那么我建議你先閱讀 TensorFlow 2 中的 Keras 教程,以及 PyTorch 中的 fastai 教程。即使不深入了解 TensorFlow 和PyTorch 的低級(jí) API ,你也有很多東西需要學(xué)習(xí),而且你應(yīng)該對(duì)這兩種方法都有所了解。然后,你可能會(huì)意識(shí)到這兩個(gè)框架的確有多相似之處,而且它們賴以生存的概念和技術(shù)都是相同的。

在很多情況下,選用哪種框架無關(guān)緊要:你會(huì)發(fā)現(xiàn)每個(gè)框架可用的模型基本相同。在某些特定的情況下,可能某個(gè)框架優(yōu)于另一個(gè)——至少在當(dāng)前版本是如此。你可能還會(huì)發(fā)現(xiàn),學(xué)習(xí)其中某一個(gè)更為容易,原因可能是框架中的某些基本功能,也有可能是教程的質(zhì)量。

審核編輯:郭婷


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86759
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5561

    瀏覽量

    122795
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    809

    瀏覽量

    13963

原文標(biāo)題:掌握深度學(xué)習(xí),為什么要用PyTorch、TensorFlow框架?

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Nordic收購 Neuton.AI 關(guān)于產(chǎn)品技術(shù)的分析

    生成比傳統(tǒng)框架(如 TensorFlowPyTorch 等)小 10 倍的模型,模型體積可低至個(gè)位數(shù) KB,并且推理速度更快、功耗更低。此次收購將 Neuton 的自動(dòng)化 TinyML 平臺(tái)
    發(fā)表于 06-28 14:18

    樹莓派搞深度學(xué)習(xí)TensorFlow啟動(dòng)!

    介紹本頁面將指導(dǎo)您在搭載64位Bullseye操作系統(tǒng)的RaspberryPi4上安裝TensorFlow。TensorFlow是一個(gè)專為深度學(xué)習(xí)開發(fā)的大型軟件庫,它消耗大量資源。您可
    的頭像 發(fā)表于 03-25 09:33 ?441次閱讀
    <b class='flag-5'>用</b>樹莓派搞<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>?<b class='flag-5'>TensorFlow</b>啟動(dòng)!

    邊緣AI新突破:MemryX AI加速卡與RK3588打造高效多路物體檢測(cè)方案

    及對(duì)主流深度學(xué)習(xí)框架 (如 TensorFlowPyTorch、ONNX) 的支持,即便是新手也能快速上手,輕松部署 AI 模型,實(shí)現(xiàn)智能
    的頭像 發(fā)表于 03-06 10:45 ?683次閱讀
    邊緣AI新突破:MemryX AI加速卡與RK3588打造高效多路物體檢測(cè)方案

    Triton編譯器在機(jī)器學(xué)習(xí)中的應(yīng)用

    多種深度學(xué)習(xí)框架,如TensorFlow、PyTorch、ONNX等,使得開發(fā)者能夠輕松地將不同框架
    的頭像 發(fā)表于 12-24 18:13 ?990次閱讀

    Arm KleidiAI助力提升PyTorch上LLM推理性能

    熱門的深度學(xué)習(xí)框架尤為突出,許多企業(yè)均會(huì)選擇其作為開發(fā) AI 應(yīng)用的庫。通過部署 Arm Kleidi 技術(shù),Arm 正在努力優(yōu)化 PyTorch,以加速在基于 Arm 架構(gòu)的處理器上
    的頭像 發(fā)表于 12-03 17:05 ?1489次閱讀
    Arm KleidiAI助力提升<b class='flag-5'>PyTorch</b>上LLM推理性能

    PyTorch 2.5.1: Bugs修復(fù)版發(fā)布

    ? 一,前言 在深度學(xué)習(xí)框架的不斷迭代中,PyTorch 社區(qū)始終致力于提供更穩(wěn)定、更高效的工具。最近,PyTorch 2.5.1 版本正式
    的頭像 發(fā)表于 12-03 16:11 ?1622次閱讀
    <b class='flag-5'>PyTorch</b> 2.5.1: Bugs修復(fù)版發(fā)布

    卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)工具與框架

    卷積神經(jīng)網(wǎng)絡(luò)因其在圖像和視頻處理任務(wù)中的卓越性能而廣受歡迎。隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,多種實(shí)現(xiàn)工具和框架應(yīng)運(yùn)而生,為研究人員和開發(fā)者提供了強(qiáng)大的支持。 TensorFlow 概述
    的頭像 發(fā)表于 11-15 15:20 ?671次閱讀

    PyTorch GPU 加速訓(xùn)練模型方法

    深度學(xué)習(xí)領(lǐng)域,GPU加速訓(xùn)練模型已經(jīng)成為提高訓(xùn)練效率和縮短訓(xùn)練時(shí)間的重要手段。PyTorch作為一個(gè)流行的深度學(xué)習(xí)
    的頭像 發(fā)表于 11-05 17:43 ?1409次閱讀

    PyTorch 數(shù)據(jù)加載與處理方法

    PyTorch 是一個(gè)流行的開源機(jī)器學(xué)習(xí)庫,它提供了強(qiáng)大的工具來構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。在構(gòu)建模型之前,一個(gè)重要的步驟是加載和處理數(shù)據(jù)。 1. Py
    的頭像 發(fā)表于 11-05 17:37 ?937次閱讀

    如何使用 PyTorch 進(jìn)行強(qiáng)化學(xué)習(xí)

    強(qiáng)化學(xué)習(xí)(Reinforcement Learning, RL)是一種機(jī)器學(xué)習(xí)方法,它通過與環(huán)境的交互來學(xué)習(xí)如何做出決策,以最大化累積獎(jiǎng)勵(lì)。PyTorch 是一個(gè)流行的開源機(jī)器
    的頭像 發(fā)表于 11-05 17:34 ?1043次閱讀

    Pytorch深度學(xué)習(xí)訓(xùn)練的方法

    掌握這 17 種方法,最省力的方式,加速你的 Pytorch 深度學(xué)習(xí)訓(xùn)練。
    的頭像 發(fā)表于 10-28 14:05 ?658次閱讀
    <b class='flag-5'>Pytorch</b><b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>訓(xùn)練的方法

    使用OpenVINO C++在哪吒開發(fā)板上推理Transformer模型

    OpenVINO 是一個(gè)開源工具套件,用于對(duì)深度學(xué)習(xí)模型進(jìn)行優(yōu)化并在云端、邊緣進(jìn)行部署。它能在諸如生成式人工智能、視頻、音頻以及語言等各類應(yīng)用場(chǎng)景中加快深度學(xué)習(xí)推理的速度,且支持來自
    的頭像 發(fā)表于 10-12 09:55 ?993次閱讀
    使用OpenVINO C++在哪吒開發(fā)板上推理Transformer模型

    pytorch環(huán)境搭建詳細(xì)步驟

    PyTorch作為一個(gè)廣泛使用的深度學(xué)習(xí)框架,其環(huán)境搭建對(duì)于從事機(jī)器學(xué)習(xí)深度
    的頭像 發(fā)表于 08-01 15:38 ?1869次閱讀

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一個(gè)非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們?cè)?b class='flag-5'>深度學(xué)習(xí)領(lǐng)域的應(yīng)用。 Pytho
    的頭像 發(fā)表于 08-01 15:27 ?3283次閱讀

    NVIDIA推出全新深度學(xué)習(xí)框架fVDB

    在 SIGGRAPH 上推出的全新深度學(xué)習(xí)框架可用于打造自動(dòng)駕駛汽車、氣候科學(xué)和智慧城市的 AI 就緒型虛擬表示。
    的頭像 發(fā)表于 08-01 14:31 ?1149次閱讀