Pytorch安裝 與入門鏈接

Pytorch安裝 

1)先是Anaconda安裝配置,參照原來一篇博客

2)Git Clone源代碼

進入虛擬環境後,採用conda安裝:conda install pytorch torchvision -c soumith

如果不成功則:

那麼最後還有一個選擇,install from source,果斷在GitHub上找到PyTorch的repository:

https://github.com/pytorch/pytorch

接下來需要做的就是將PyTorch最新的源代碼取到本地:

gitclone https://github.com/pytorch/pytorch.git

離線安裝:

http://pytorch.org/      選擇合適版本,例:

http://download.pytorch.org/whl/cu90/torch-0.3.1-cp36-cp36m-linux_x86_64.whl 

下載下來再:pip install torch-0.3.1-cp36-cp36m-linux_x86_64.whl 

3)測試 

進入python模式下,看能否導入torch成功:
$  python
>  import torch

4)Install from Source

根據PyTorch源代碼的readme中的安裝步驟,我們要先配置環境變量CMAKE_PREFIX_PATH,打開~/.bashrc (vi ~/.bashrc)輸入:

export CMAKE_PREFIX_PATH=[anaconda root directory]
  • 1

其中“[anaconda root directory]”指的是Anaconda的安裝文件夾下的bin文件夾。在我的Ubuntu12.04上,安裝路徑如下:

export CMAKE_PREFIX_PATH=/home/data/liangxiaoyun/anaconda2/bin
  • 1

另外由於我的GPU不支持CUDA,只能安裝CPU部分,所以還需要設置環境變量NO_CUDA爲1:

export NO_CUDA=1
  • 1

在完成上述兩個環境變量配置後需要記得這一步,使環境變量生效:

source ~/.bashrc
  • 1

然後,我們需要安裝PyTorch的依賴庫:

conda install numpy pyyaml mkl setuptools cmake gcc cffi
  • 1

最後,一切準備就緒!馬上進入愉快的編譯安裝過程:

python setup.py install
  • 1

大概十分鐘左右,提示安裝成功,馬上進入Python試一試:

Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> x = torch.rand(5,3)
>>> print(x)

 0.0592  0.4292  0.5637
 0.6365  0.2012  0.5649
 0.2594  0.8850  0.5157
 0.0689  0.4914  0.8834
 0.3978  0.7032  0.6879
[torch.FloatTensor of size 5x3]

可以看到import torch可以成功,表示PyTorch的安裝完成!仔細一看PyTorch裏面的數據操作和Matlab挺像的,方便上手。

2.TorchVision安裝

TorchVision爲PyTorch提供視頻和圖像方面的支持,包括數據庫和模型等。安裝好了之後可以很方便地導入很多圖像數據庫,比如cifar-10。下載地址爲:

https://pypi.python.org/pypi/torchvision/0.1.8
  • 1

我們點擊Download下載whl文件,然後在Anaconda的環境中啓動pip進行安裝:

pip install torchvision-0.1.8-py2.py3-none-any.whl
  • 1

以上方法出錯,則:

Anaconda:

conda install torchvision -c pytorch

至此,TorchVision就已經安裝成功!

3. 小試牛刀

PyTorch官網的入門教程中有一個有關圖像分類的,我們嘗試着完成這個教程:

http://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html
  • 1

在頁面的最下面有代碼的下載鏈接,選擇下載“cifar10_tutorial.py”,直接在終端中運行程序:

python cifar10_tutorial.py
  • 1

出現以下提示,正在下載cifar10數據庫。

Downloading http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz
  • 1

等了很久還是沒下載好,我選擇用其他下載工具譬如迅雷,直接下載cifar-10-python.tar.gz,大小接近180M,怪不得這麼久。

然後在data文件夾裏,對數據庫解壓:

tar -xzvf cifar-10-python.tar.gz

解壓好了再選擇運行代碼cifar10_tutorial.py,提示數據驗證通過:

Files already downloaded and verified
Files already downloaded and verified

接下來就是train和test的輸出:

[1,  2000] loss: 2.223
[1,  4000] loss: 1.853
[1,  6000] loss: 1.694
[1,  8000] loss: 1.592
[1, 10000] loss: 1.521
[1, 12000] loss: 1.472
[2,  2000] loss: 1.392
[2,  4000] loss: 1.359
[2,  6000] loss: 1.335
[2,  8000] loss: 1.313
[2, 10000] loss: 1.316
[2, 12000] loss: 1.276
Finished Training
GroundTruth:    cat  ship  ship plane
Predicted:   frog  ship  ship  ship
Accuracy of the network on the 10000 test images: 53 %
Accuracy of plane : 32 %
Accuracy of   car : 75 %
Accuracy of  bird : 51 %
Accuracy of   cat : 19 %
Accuracy of  deer : 49 %
Accuracy of   dog : 28 %
Accuracy of  frog : 70 %
Accuracy of horse : 68 %
Accuracy of  ship : 80 %
Accuracy of truck : 56 %

結果和PyTorch的官方tutorial差不多,運行成功!

至此,PyTorch的安裝、環境搭建以及安裝後的代碼測試就全部完成。按照這個步驟,相信你也可以很快開始PyTorch的開發!


入門建議

第一步 github的 tutorials 尤其是那個60分鐘的入門。只能說比tensorflow簡單許多. 另外jcjohnsonSimple examples to introduce PyTorch 也不錯
第二步 example 參考 pytorch/examples 實現一個最簡單的例子(比如訓練mnist )。
第三步 通讀doc PyTorch doc 尤其是autograd的機制,和nn.module ,optim相關內容。文檔現在已經很完善,而且絕大部分文檔都是作者親自寫的,質量很高。
第四步 論壇討論 PyTorch Forums 。論壇很活躍,而且質量很高,pytorch的維護者(作者)回帖很及時的。每天刷一刷帖可以少走很多彎路,避開許多陷阱,消除很多思維慣性.尤其看看那些閱讀量高的貼,刷帖能從作者那裏學會如何寫出bug-free clean and elegant 的代碼。如果自己遇到問題可以先搜索一下,一般都能找到解決方案,找不到的話大膽提問,大家都很熱心的。
第五步 閱讀源代碼 fork pytorch,pytorch-vision等。相比其他框架,pytorch代碼量不大,而且抽象層次沒有那麼多,很容易讀懂的。通過閱讀代碼可以瞭解函數和類的機制,此外它的很多函數,模型,模塊的實現方法都如教科書般經典。還可以關注官方倉庫的issue/pull request, 瞭解pytorch開發進展,以及避坑。
還可以加入 slack羣組討論,e-mail訂閱等
總之 pytorch入門很簡單,代碼很優雅,是最Pythonic的框架. 歡迎入坑。

推銷一個教程:chenyuntc/pytorch-book 用notebook寫的教程,裏面還有很多有趣的例子,比如用GAN生成動漫頭像,用CharRNN寫唐詩,類Prisma的濾鏡(風格遷移)和圖像描述等


1. 關於如何照着example實現簡單的例子, 做法是認真看幾遍example的實現代碼.理解透,然後自己從頭寫, 實現相同的模型, 實在卡住了寫不下去可以看一下, 但是絕對不能copy and paste. 當你實現了一個簡單的例子(比如tutorial 的 mnist) 基本上對pytorch的主要內容都有了大概的瞭解. 寫的時候會涉及 dataset,nn.module, optim, loss等許多模塊, 也算是加深理解. 用pytorch 寫的第一個模型是DCGAN , 用ipython notebook寫的 GitHub-chenyuntc/pytorch-GAN, 然後看到了新出的大作WGAN, 在DCGAN上做了一點點修改, 就實現了WGAN, 是入門最快的一次.
2. 論壇的很多貼都是你以後可能遇到的問題 比如
如何從預訓練好的網絡中的某一層提取特徵: How to extract features of an image from a trained model
論壇貼比較少, 我覺得其中一個原因是很多問題都不是問題,比如如何共享參數, 這個在tensorflow中有專門的一章講解, 但是用pytorch寫可能都不會意識到有這個問題---直接用就是了 How to create model with sharing weight? 比如如何用在模型運行時實現條件判斷--直接用if. 如何查看中間結果?--直接print. 如何修改參數--直接賦值. 相比於tensorflow,pytorch更接近python的寫法.
3. 關於如何閱讀源代碼: fork, clone ,然後用vscode打開--- 大概瀏覽一下, 知道類, 模塊之間的關係. 然後重點閱讀一些經典函數的代碼, 按ctrl單擊調用的函數在不同文件中跳轉, 瞭解函數調用關係. 此外torch-vision中很多模型如ResNet的實現也很簡潔.
4. 一些其它的例子:
安利
@莫煩的PyTorch教程(視頻+代碼)詳情見專欄文章 等什麼, 趕快抱緊 PyTorch 的大腿!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章