10分鐘快速入門PyTorch (0)

之前有很多小夥伴私信我說文章思想能看懂,但是pytorch的部分因為沒有看過pytorch教程所以一臉懵逼。對此我也表示很無奈,既然大家不願意去官網看教程,那麼我就將我學習pytorch的經驗寫出來,一步一步從0開始讓大家學會pytorch,教程比官網的更加簡單,同時也增加了更多簡單的例子讓大家快速上手pytorch,愉快地開始煉丹。

n

什麼?你還不知道pytorch是啥,快點去看看專欄裡面的pytorch介紹吧。

n

推薦在電腦端閱讀本篇文章。

n

環境配置

n

首先當然是需要安裝pytorch了,目前pytorch只支持mac和linux,如果你的電腦是windows,裝虛擬機或者雙系統。如果想要愉快地煉丹,那麼強烈推薦使用linux系統,因為所有的深度學習框架在linux上都有很好的支持,遠遠好於windows系統,而且linux也沒有大家想像中的那麼難學,目前linux系統的圖形界面讓大家上手的時候更加容易。

n

裝完了系統之後就需要安裝環境了,首推Anaconda,這是一個科學計算的集成環境,安裝完這之後基本所需要的包都有了,而且還提供互動式的jupyter notebook,可以說為我們做實驗提供了很好的交互。如果去Anaconda的官網下載速度比較慢,可以去清華鏡像下載。

n

安裝完Anaconda之後我們就可以安裝pytorch了,進入主頁,一步一步來就行了,如果要裝GPU版的,需要cuda和cudnn,這個網上有很多教程,可以去看看,如果你只是為了快速上手玩玩pytorch,那麼可以不用廢時間裝GPU版。

n

pytorch基礎

n

裝好了pytorch之後,正式進入我們的教程,pytorch基礎部分,這個部分主要是介紹一下pytorch處理的對象以及操作。

n

Tensor

n

首先介紹裡面最基本的操作對象,tensor

tensor就是張量的英文,表示多維的矩陣,比如一維就是向量,二維就是一般的矩陣等等,pytorch裡面處理的單位就是一個一個的tensor

n

可以顯示的得到其大小

這個和numpy很相似,同時tensor和numpy.array之間也可以相互轉換

tensor的運算也很簡單,一般的四則運算都是支持的

n

Variable

n

pytorch和numpy不一樣的地方就來了,就是其提供了自動求導功能,也就是可以自動給你你要的參數的梯度,這個操作又另外一個基本元素提供,Variable

n

本質上Variable和Tensor沒有區別,不過Variabel會放入一個計算圖,然後進行前向傳播,反向傳播以及自動求導

n

一個Variable裡面包含著三個屬性,data,grad和creator,其中creator表示得到這個Variabel的操作,比如乘法或者加法等等,grad表示方向傳播的梯度,data表示取出這個Variabel裡面的數據

這就是一個簡單的計算圖的例子

n

神經網路

n

前面講了兩個操作對象,最後講一下pytorch裡面的模型建立,模型的建立主要依賴於torch.nn,torch.nn包含這個所有神經網路的層的結構

n

這就是構建所有神經網路的模板,不管你想構建卷積神經網路還是循環神經網路或者是生成對抗網路都依賴於這個結構

n

本文所有代碼以及後續的教程代碼都在github上,強烈推薦進入github下載全部代碼進行學習

n

ok,這次介紹了安裝環境,引入了基本的pytorch處理單元,相信大家對pytorch也有了一個基本了解,下節內容預告 線性回歸和logistic回歸

n

本文代碼已經上傳到了github 上

n

歡迎查看我的知乎專欄,深度煉丹

n

歡迎訪問我的博客


推薦閱讀:

《AOGNets:Deep AND-OR Grammar Networks for Visual Recognition》論文筆記與Pytorch實現

TAG:PyTorch | tutorial | 深度学习DeepLearning |