DL框架之PyTorch:深度学习框架PyTorch的简介、安装、使用方法之详细攻略
DL框架之PyTorch:PyTorch的簡介、安裝、使用方法之詳細(xì)攻略
DL框架之PyTorch:深度學(xué)習(xí)框架PyTorch的簡介、安裝、使用方法之詳細(xì)攻略
?
?
目錄
PyTorch的簡介
1、pytorch的三大優(yōu)勢
2、PyTorch的三個結(jié)構(gòu)層次
PyTorch的安裝
1、20181114更新版本到 torch-0.4.1
2、20200108更新版本到 torch 1.3.1
3、Anaconda內(nèi)安裝torch的whl文件更新版本到 torch 1.3.1
4、Anaconda內(nèi)安裝torch的whl文件更新版本到 torch 1.0.0
PyTorch的使用方法
0、Pytorch基礎(chǔ)知識
1、Pytorch三行命令即可運(yùn)算
2、Pytorch加載預(yù)訓(xùn)練模型
?
相關(guān)文章
DL框架之PyTorch:PyTorch的簡介、安裝、使用方法之詳細(xì)攻略
Py之torchvision:torchvision庫的簡介、安裝、使用方法之詳細(xì)攻略
?
PyTorch的簡介
? ? ? ?pytorch是一個python優(yōu)先的深度學(xué)習(xí)框架,是一個和tensorflow,Caffe,MXnet一樣,非常底層的框架。? ? ?
? ? ? ?在 AI 開發(fā)中,從研究到產(chǎn)品的過程通常涉及很多的步驟和工具,使得測試新方法、部署以及迭代提高準(zhǔn)確率和性能很耗時、復(fù)雜。為了幫助加速和優(yōu)化這個過程,Facebook 發(fā)布了 PyTorch 1.0,其開源 AI 框架的最新版本。
? ? ? ?PyTorch 1.0 發(fā)布在即,全新的版本融合了 Caffe2 和 ONNX 支持模塊化、面向生產(chǎn)的功能,并保留了 PyTorch 現(xiàn)有的靈活、以研究為中心的設(shè)計。PyTorch 1.0 從 Caffe2 和 ONNX 移植了模塊化和產(chǎn)品導(dǎo)向的功能,并將它們和 PyTorch 已有的靈活、專注研究的設(shè)計結(jié)合,已提供多種 AI 項(xiàng)目的從研究原型制作到產(chǎn)品部署的快速、無縫路徑。利用 PyTorch 1.0,AI 開發(fā)者可以通過混合前端快速地實(shí)驗(yàn)和優(yōu)化性能,該前端可以在命令式執(zhí)行和聲明式執(zhí)行之間無縫地轉(zhuǎn)換。PyTorch 1.0 中的技術(shù)已經(jīng)讓很多 Facebook 的產(chǎn)品和服務(wù)變得更強(qiáng)大,包括每天執(zhí)行 60 億次文本翻譯。
? ? ? ?PyTorch是一個基于Torch的Python開源機(jī)器學(xué)習(xí)庫,用于自然語言處理等應(yīng)用程序。它主要由Facebookd的人工智能小組開發(fā),不僅能夠 實(shí)現(xiàn)強(qiáng)大的GPU加速,同時還支持動態(tài)神經(jīng)網(wǎng)絡(luò),這一點(diǎn)是現(xiàn)在很多主流框架如TensorFlow都不支持的。 PyTorch提供了兩個高級功能: 1.具有強(qiáng)大的GPU加速的張量計算(如Numpy) 2.包含自動求導(dǎo)系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò) 除了Facebook之外,Twitter、GMU和Salesforce等機(jī)構(gòu)都采用了PyTorch。
? ? ? ?從 PyTorch 到 Caffe2 的遷移過程以前是手動的、耗時間的和容易出錯的。為了解決這個問題,Facebook 與主要的硬件和軟件公司合作創(chuàng)建了 ONNX(開放神經(jīng)網(wǎng)絡(luò)交換格式),這是一種用于表示深度學(xué)習(xí)模型的開放格式。通過 ONNX,開發(fā)者能在不同的框架間共享模型,例如我們可以導(dǎo)出由 PyTorch 構(gòu)建的模型,并將它們導(dǎo)入到 Caffe2。在 Facebook 中,這令我們能在大規(guī)模服務(wù)器和移動端上快速實(shí)現(xiàn) AI 的研究、訓(xùn)練和推斷。Facebook 已經(jīng)用這些工具(PyTorch、Caffe2 和 ONNX)來構(gòu)建和部署 Translate,這一工具能大規(guī)模運(yùn)行并支持翻譯 Facebook 中最常用的 48 種語言。在 VR 中,這些工具對于將基于 Oculus 的新研究部署到生產(chǎn)過程中至關(guān)重要。
? ? ? ?Torch官網(wǎng):https://pytorch.org/
? ? ? ?Torch官網(wǎng)的gitHub:https://github.com/torch/torch7
? ? ? ?pypi torch : ?https://pypi.org/project/torch/
? ? ? ?Torch自稱為神經(jīng)網(wǎng)絡(luò)界的 Numpy,因?yàn)樗軐?torch 產(chǎn)生的 tensor 放在 GPU 中加速運(yùn)算 (前提是你有合適的 GPU), 就像 Numpy 會把 array 放在 CPU 中加速運(yùn)算。 所以神經(jīng)網(wǎng)絡(luò)的話, 當(dāng)然是用 Torch 的 tensor 形式數(shù)據(jù)最好。 就像 Tensorflow 當(dāng)中的 tensor 一樣。pytorch是一個動態(tài)的建圖的工具。不像Tensorflow那樣,先建圖,然后通過feed和run重復(fù)執(zhí)行建好的圖。相對來說,pytorch具有更好的靈活性。
?? ? ?如圖所示,Torch已經(jīng)實(shí)現(xiàn)了很多庫,比如ML、RL等。
(1)、比如查詢BatchNormalization算法的實(shí)現(xiàn)
1、pytorch的三大優(yōu)勢
- (1)、Python優(yōu)先支持策略:Pytorch主推的特性之一,就是支持python(官方的提法:puts Python first)。因?yàn)橹苯訕?gòu)建自 Python C API,Pytorch從細(xì)粒度上直接支持python的訪問。相比于原生Python實(shí)現(xiàn),引入的新概念很少,這不僅降低了 python 用戶理解的門檻,也能保證代碼基本跟原生的 python 實(shí)現(xiàn)一致。事實(shí)上,開發(fā)者可以直接用原生 python 代碼擴(kuò)展 Pytorch 的 operation。
- (2)、動態(tài)圖的良好支持:Tensorflow運(yùn)行必須提前建好靜態(tài)計算圖,然后通過feed和run重復(fù)執(zhí)行建好的圖。但是Pytorch卻不需要這么麻煩:PyTorch的程序可以在執(zhí)行時動態(tài)構(gòu)建/調(diào)整計算圖。相對來說,pytorch具有更好的靈活性。這得益于Pytorch直接基于 python C API 構(gòu)建的 python 接口。
- (3)、易于Debug:Pytorch在運(yùn)行時可以生成動態(tài)圖,開發(fā)者就可以在堆棧跟蹤中看到哪一行代碼導(dǎo)致了錯誤。你甚至可以在調(diào)試器中停掉解釋器并看看某個層會產(chǎn)生什么。
- (4)、PyTorch可以使用GPU的功能代替numpy。 一個深刻的學(xué)習(xí)研究平臺,提供最大的靈活性和速度。
?
2、PyTorch的三個結(jié)構(gòu)層次
- tensor:張量,多維數(shù)組,可在GPU上跑。
- variable:可記住tensor在計算圖中的位置,可知道當(dāng)前variable和之前variable的關(guān)系。
- module:神經(jīng)網(wǎng)絡(luò)的層次,如全連接層、卷積層。
?
PyTorch的安裝
pip install torch pip install torch==0.4.1.post2T1方法 git clone https://github.com/pytorch/vision cd vision python setup.py install T2方法 pip3 install http://download.pytorch.org/whl/cu80/torch-0.4.0-cp36-cp36m-win_amd64.whl? pip3 install torchvisionT3方法 pip install torch-0.4.0-cp36-cp36m-win_amd64.whl pip install torchvision?
1、20181114更新版本到 torch-0.4.1
pip3 install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-win_amd64.whl pip3 install torchvision
(1)、測試
?
2、20200108更新版本到 torch 1.3.1
官網(wǎng):https://pytorch.org/
執(zhí)行命令:
pip3 install torch===1.3.1 torchvision===0.4.2 -f https://download.pytorch.org/whl/torch_stable.html或者 pip install torch-1.3.1-cp36-cp36m-win_amd64.whl?
3、Anaconda內(nèi)安裝torch的whl文件更新版本到 torch 1.3.1
pip install D:\ProgramData\Anaconda3\envs\torch-1.3.1-cp36-cp36m-win_amd64.whl
?
4、Anaconda內(nèi)安裝torch的whl文件更新版本到 torch 1.0.0
pip install torch===1.0.0 torchvision===0.2.1 -f https://download.pytorch.org/whl/cu100/torch_stable.html
?
?
PyTorch的使用方法
相關(guān)文章
Pytorch之CNN:基于Pytorch框架實(shí)現(xiàn)經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)的算法(LeNet、AlexNet、VGG、NIN、GoogleNet、ResNet)——從代碼認(rèn)知CNN經(jīng)典架構(gòu)
?
0、Pytorch基礎(chǔ)知識
1、PyTorch是一個提供兩個高級功能的python包: ?
具有強(qiáng)GPU加速度的張量計算(如numpy)?
深層神經(jīng)網(wǎng)絡(luò)建立在基于磁帶的自動調(diào)整系統(tǒng)上?
可以重用您最喜愛的python軟件包,如numpy,scipy和Cython,以便在需要時擴(kuò)展PyTorch。 ?
2、PyTorch在細(xì)粒度級別是由以下組件組成的庫:
torch? ?像NumPy這樣的Tensor圖書館,擁有強(qiáng)大的GPU支持?
torch.autograd ??一種基于磁帶的自動分類庫,支持所有可區(qū)分的Tensor操作手電筒。pytorch的自動求導(dǎo)工具包在torch.autograd中。
torch.nn? ?一個神經(jīng)網(wǎng)絡(luò)庫與autograd設(shè)計了最大的靈活性。pytorch神經(jīng)網(wǎng)絡(luò)構(gòu)建很容易,主要使用的包是torch.nn這個包,可以嘗試使用pytorch構(gòu)建一個簡單的二層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
torch.optim? ?一種與torch.nn一起使用的優(yōu)化包,具有標(biāo)準(zhǔn)優(yōu)化方法,如SGD,RMSProp,LBFGS,Adam等。?
torch.multiprocessing? ?python多處理,但是具有魔法內(nèi)存共享的手電筒傳感器跨過程。適用于數(shù)據(jù)加載和hogwild培訓(xùn)。
torch.utils? ?DataLoader,Trainer等實(shí)用功能為方便起見 torch.legacy(.nn / .optim) 由于向后兼容性原因,已經(jīng)從割炬移植的舊代碼?
1、Pytorch三行命令即可運(yùn)算
?
2、Pytorch加載預(yù)訓(xùn)練模型
import torch import torchvisionalexnet= torchvision.models.models.alexnet(pretrained=True) vgg16 = torchvision.models.vgg16(pretrained=True) resnet101 = torchvision.models.resnet101(pretrained=True) resnet152 = torchvision.models.resnet152(pretrained=True)?
?
?
?
?
參考文獻(xiàn)
PyTorch官網(wǎng)
PyTorch中文文檔
pytorch入門
pytorch 學(xué)習(xí)筆記(一)
Win10 Python3.6下安裝PyTorch
總結(jié)
以上是生活随笔為你收集整理的DL框架之PyTorch:深度学习框架PyTorch的简介、安装、使用方法之详细攻略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Crawler:基于BeautifulS
- 下一篇: DL:听着歌曲《成都》三分钟看遍主流的深