2018年11月29日 星期四

安裝深度學習框架 PyTorch

本周去逛明儀時看到這本 PyTorch 的書, 稍微翻閱才知原產於臉書開發團隊的 PyTorch 是比 TensorFlow 更容易學習的深度學習框架, 它以 Python 重新實作了知名的 Torch, 其張量運算以 Numpy 為基礎, 且更甚於 Numpy, 所以書還沒買就先來安裝測試看看 :

比Tensorflow還精美的人工智慧套件:PyTorch讓你愛不釋手




PyTorch 是一個低階的深度學習框架, 主要聚焦於直接操作陣列 (張量), 比高階的 Keras 較有彈性. Keras 將深度學習的內部層次細節與操作包裝起來 (抽象化), 實作深度學習演算法就像堆積木一樣, 特色是簡單易學, 缺點是缺乏彈性. 而 PyTorch 則提供較低階的實驗環境, 使用者有較多自由度撰寫客製化的階層, 參考 :

https://www.pytorchtutorial.com
PyTorch 基礎篇
Keras or PyTorch as your first deep learning framework

我參考了下面這篇在 Win10 機器上安裝 PyTorch :

如何在windows10环境下安装Pytorch-0.4.1版本

安裝過程包括兩部分, 先安裝 PyTorch 本身, 然後安裝 torchvision (我的 Win10 安裝的是 Python 3.6 環境) :

D:\Python\test>pip3 install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-win_amd64.whl 
Collecting torch==0.4.1 from http://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-win_amd64.whl
  Downloading http://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-win_amd64.whl (595.0MB)
Installing collected packages: torch
Successfully installed torch-0.4.1

其次是安裝 torchvision 套件, 主要提供常用影像資料集, 模型架構, 以及影像轉換函式庫, 參考 :

#  https://pytorch.org/docs/stable/torchvision/index.html

D:\Python\test>pip3 install torchvision
Collecting torchvision
  Downloading https://files.pythonhosted.org/packages/ca/0d/f00b2885711e08bd71242ebe7b96561e6f6d01fdb4b9dcf4d37e2e13c5e1/torchvision-0.2.1-py2.py3-none-any.whl (54kB)
Requirement already satisfied: numpy in c:\python36\lib\site-packages (from torchvision) (1.14.1+mkl)
Requirement already satisfied: six in c:\python36\lib\site-packages (from torchvision) (1.11.0)
Requirement already satisfied: torch in c:\python36\lib\site-packages (from torchvision) (0.4.1)
Collecting pillow>=4.1.1 (from torchvision)
  Downloading https://files.pythonhosted.org/packages/bd/39/c76eaf781343162bdb1cf4854cb3bd5947a87ee44363e5acd6c48d69c4a1/Pillow-5.3.0-cp36-cp36m-win_amd64.whl (1.6MB)
Installing collected packages: pillow, torchvision
  Found existing installation: Pillow 4.1.0
    Uninstalling Pillow-4.1.0:
      Successfully uninstalled Pillow-4.1.0
Successfully installed pillow-5.3.0 torchvision-0.2.1

安裝完成後進行初步測試 :

Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import torch
>>> print(torch.__version__) 
0.4.1
>>> import numpy
>>> print(numpy.__version__) 
1.14.1
>>> torch.cuda.is_available() 
False 

由於我電腦沒有獨立顯示卡, 因此呼叫 torch.cuda.is_available() 時傳回 False, 若有顯示卡會傳回 True. 接著按照該網頁內容測試矩陣 :

>>> x = torch.Tensor(2,3) 
>>> print(x) 
tensor([[0.0000, 0.0000, 0.0000],
        [0.0000, 0.0000, 0.0000]])
>>> y=torch.Tensor(4,2,3) 
>>> print(y)   
tensor([[[1.3788e-14, 5.7453e-44, 9.3945e-05],
         [4.5911e-41, 0.0000e+00, 0.0000e+00]],

        [[2.1019e-44, 0.0000e+00, 2.9114e-05],
         [8.4218e-43, 7.3917e-06, 8.4218e-43]],

        [[0.0000e+00, 0.0000e+00, 2.1019e-44],
         [0.0000e+00, 2.7358e-05, 8.4218e-43]],

        [[1.0333e+20, 0.0000e+00, 0.0000e+00],
         [0.0000e+00, 2.1019e-44, 0.0000e+00]]])
>>> x = x.cuda() 
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    x = x.cuda()
RuntimeError: cuda runtime error (35) : CUDA driver version is insufficient for CUDA runtime version at ..\aten\src\THC\THCGeneral.cpp:74

由於沒有獨顯卡, 因此呼叫 cuda() 會報錯.

2018-12-01 補充 :

看起來, 下次換新筆電時要把獨顯卡納入考量才好, ASUS UX533FD 似乎是兼具效能與長效電池優點的機種, 而且獨顯採用輝達 GTX 1050, 效能勝過 ACER Swift 5 所用的 MX150, 參考 :

MX150显卡和GTX1050哪个好

雖說在筆電上跑機器學習程式不用寄望效能有多好, 但至少呼叫 CUDA 函數不會抱錯, 且可以比較一下 CPU 版與 GPU 版效能差異, 偶而剪輯影片也比較順暢, 只要電池夠大, 多個顯卡也無妨. 參考 :

新筆電市調 (二) : ASUS ZenBook UX533FD


2019-01-29 補充 :

其實在 PyTorch 官網就有安裝指令產生網頁, 只要指定 OS, 安裝方式, Python 版本以及有無 CUDA, 底下就會自動產生所需之安裝指令 :




以 Win10, Python 3.7 無 CUDA 為例, 其 pip 指令如下 :

pip3 install https://download.pytorch.org/whl/cpu/torch-1.0.0-cp37-cp37m-win_amd64.whl
pip3 install torchvision

沒有留言 :