0. 簡介
本文主要介紹了使用pytorch作爲框架入門深度學習。
其中第1節(深度學習入門)內容較多,建議邊看第1節邊實踐第2節(Pytorch入門)中的內容(主要是2.1和2.2)。
1. 深度學習入門
網上的資源非常多,這裏重點推薦一個資源:斯坦福大學公開課 CS231N。
對應的中文翻譯及視頻資料等如下:CS231n 官方筆記及其中文譯本。
學習建議:
- 讀者把截圖中兩個模塊中涉及的文檔讀懂(部分代碼要自己對照着原文實踐) 基本上就可以入門了(預計需要半個月到一個月時間)。
- 上述鏈接中的視頻,作業等資料可選擇性觀看,主要看截圖中給到的內容。筆者只看了截圖中的英文資料,其他內容還沒看:(, 如果讀者覺得讀英語效率低,可以參考對應的中文資料。
- 這裏不再推薦其他資源,對於初學者只要精通了上述內容,基本上就可以讀懂絕大多數深度學習的資料了,對於裏面不懂的內容可自行查找資料補充。
2. Pytorch 入門
2.1. 安裝軟件
2.1.1 python
建議安裝anaconda(裏面集成了python解釋器以及常用的python模塊)。 由於清華大學鏡像和中科院鏡像的anaconda源未獲得授權已經被關閉,因此這裏給出的是官方版本,可能下載速度有點慢。讀者可自行查找更快的下載方案,比如百度雲。
- 建議安裝python3.5以上版本
- windows 下安裝教程:Windows下Anaconda的安裝和簡單使用
- Linux 下安裝教程: Linux下安裝Anaconda(64位)詳細過程
2.1.2 pycharm(可選擇)
這是一個IDE(軟件開發環境,類似於Visual Studio), 建議讀者使用。但是讀者也可以使用Anaconda中自帶的IDE,如Spyder。或者也可以使用其他編輯器,如Visual Studio Code。
- Windows 下的詳細安裝及使用教程請參考:Windows下Anaconda和PyCharm的安裝與使用
- Linux下的安裝教程請參考(請先讀完Windows下如何配置Pycharm再讀下面的安裝方法,Linux下配置Pycharm和Windows下相同):
建議:IDE不一定用的多的就是最好的,請讀者自行選擇適合自己的IDE,並且精通一個即可。
2.1.3 cuda(可選擇)
如果讀者電腦上有nvidia GPU且未安裝cuda,可以考慮下載並安裝。這裏給出建議的參考博客,不再詳細介紹。
- windows: Windows 10,nvidia顯卡, tensorflow-gpu cuda9.0安裝(只看安裝cuda部分即可)
- Linux: ubuntu16.04下安裝GTX1080TI顯卡驅動+安裝CUDA
2.1.4 pytorch
如圖,登陸pytorch官網,在下方選好對應的pytorch版本,系統會自動給出需要運行的命令。
Linux 下安裝教程:
- Linux 下安裝教程:Linux下便捷安裝 Pytorch命令指南
- 比如這裏筆者選擇satble(1.1)版本, 操作系統爲Linux, 安裝包使用Conda, python版本爲3.6, cuda版本爲9.0。
因此只需要在終端(Terminal)中輸入如下命令:conda install pytorch torchvision cudatoolkit=9.0 -c pytorch
注意:這裏如果讀者沒有安裝cuda,選擇None
Windows 下安裝教程:
- Windows 下安裝教程:pytorch在windows10上安裝使用
- 如果系統爲windows,建議按照如下配置選擇:
注意:這裏如果讀者沒有安裝cuda,選擇None
2.2. pytorch的基本原理
這一節筆者主要看了pytorch的官方文檔和教程,裏面有很多很多例子,如果把這些例子全看完,足以滿足日常使用的要求。如果時間不夠充足,可以考慮先挑一些緊急的看,以後等到熟練了或者需要用到什麼地方再反過頭來看。
下面列舉了一些建議先看的內容:
2.2.1 60分鐘入門
對應中文翻譯:PyTorch 深度學習:60分鐘快速入門
把上圖中的五個部分讀懂,大約需要一小時到兩小時。這一部分主要介紹了
- 什麼是pytorch?
- 什麼是tensor?
- pytorch如何自動求導?
- 什麼是神經網絡,如何搭建神經網絡?
- 如何從頭到尾訓練一個分類的神經網絡模型?
- 數據並行機制?數據怎麼在多個GPU上並行運算?
2.2.2 pytorch的數據加載機制
對應中文翻譯:PyTorch:數據加載和預處理
這一節我認爲是必看的,大約需要一到兩小時讀懂。讀完這一節,你將學會:
- 讀懂別人是怎麼設計DataSet的
- 靈活地針對自己的數據定義訓練過程中從磁盤上讀取數據到網絡中
2.2.3 模型加載和保存
這一節主要講如何將訓練好的模型加載到網絡中,以及如何保存訓練好的模型。
讀完上述內容,基本上可以瞭解pytorch的原理。剩下的就是根據不同的需求看不同的內容。比如,如果讀者想做遷移學習,或者強化學習,或者只是想用GAN網絡,那麼只需要找對應的內容即可。
2.3. Pytorch工具介紹 (可選擇)
下面的鏈接介紹了筆者常用的一些pytorch工具,包括
-
Awesome-Pytorch-list,提供了pytorch的各種工具,代碼,文檔等
-
使用pytorch+tensorboardX進行數據可視化處理(初學者可以不用這個,不會影響結果)
- 使用Augomentor進行數據的擴增處理