強推!《PyTorch中文手冊》來了

2020-12-05 新智元

新智元報導

來源:GitHub

作者:zergtant

【新智元導讀】今天我們強烈推薦一本中文PyTorch書籍 —— PyTorch 中文手冊,並附上試讀。本書提供PyTorch快速入門指南並與最新版本保持一致,其中包含的 Pytorch 教程全部通過測試保證可以成功運行。

PyTorch 是一個深度學習框架,旨在實現簡單靈活的實驗。

自 2017 年初首次推出,PyTorch 很快成為 AI 研究人員的熱門選擇並受到推崇。PyTorch 有許多優勢,如採用 Python 語言、動態圖機制、網絡構建靈活以及擁有強大的社群等。由於其靈活、動態的編程環境和用戶友好的界面,PyTorch 是快速實驗的理想選擇。

PyTorch 現在是 GitHub 上增長速度第二快的開源項目,在過去的 12 個月裡,貢獻者增加了 2.8 倍。而且,去年 12 月在 NeurIPS 大會上,PyTorch 1.0 穩定版終於發布。PyTorch 1.0 增加了一系列強大的新功能,大有趕超深度學習框架老大哥 TensorFlow 之勢。

因此,學習 PyTorch 大有裨益!

今天我們強烈推薦一本中文 PyTorch 書籍 ——PyTorch 中文手冊 (pytorch handbook),並附上試讀。這是一本開源的書籍,目標是幫助那些希望和使用 PyTorch 進行深度學習開發和研究的朋友快速入門,其中包含的 Pytorch 教程全部通過測試保證可以成功運行

開源地址:

https://github.com/zergtant/pytorch-handbook

書籍介紹

這是一本開源的書籍,目標是幫助那些希望和使用 PyTorch 進行深度學習開發和研究的朋友快速入門。

由於本人水平有限,在寫此教程的時候參考了一些網上的資料,在這裡對他們表示敬意,我會在每個引用中附上原文地址,方便大家參考。

深度學習的技術在飛速的發展,同時 PyTorch 也在不斷更新,且本人會逐步完善相關內容。

版本說明

由於 PyTorch 版本更迭,教程的版本會與 PyTorch 版本,保持一致。

12 月 8 日 PyTorch 已經發布 1.0 的穩定版。 API 的改動不是很大,本教程已經通過測試,保證能夠在 1.0 中正常運行。 不過目前看影響不大,因為畢竟內容還不多。 v0.4.1 已經新建了分支作為存檔,並且該不會再進行更新了。

目錄

第一章: pytorch 入門

1. Pytorch 簡介

2. Pytorch 環境搭建

3. PyTorch 深度學習:60 分鐘快速入門 (官方)

張量Autograd: 自動求導神經網絡訓練一個分類器選讀:數據並行處理 (多 GPU)4. 相關資源介紹

第二章 基礎

第一節 PyTorch 基礎

張量自動求導神經網絡包 nn 和優化器 optm數據的加載和預處理

第二節 深度學習基礎及數學原理

深度學習基礎及數學原理

第三節 神經網絡簡介

神經網絡簡介

第四節 卷積神經網絡

卷積神經網絡

第五節 循環神經網絡

循環神經網絡

第三章 實踐

第一節 logistic 回歸二元分類

logistic 回歸二元分類

第二節 CNN:MNIST 數據集手寫數字識別

CNN:MNIST 數據集手寫數字識別

第三節 RNN 實例:通過 Sin 預測 Cos

RNN 實例:通過 Sin 預測 Cos

第四章 提高

第一節 Fine-tuning

Fine-tuning

第二節 可視化

visdom

tensorboardx

第三節 fastai

第四節 數據處理技巧

第五節 並行計算

第五章 應用

第一節 Kaggle 介紹

第二節 結構化數據

第三節 計算機視覺

第四節 自然語言處理

第五節 協同過濾

第六章 資源

試讀:Pytorch 簡介、 Pytorch 環境搭建

1.1 Pytorch 簡介

1.1.1 PyTorch 的由來

很多人都會拿 PyTorch 和 Google 的 Tensorflow 進行比較,這個肯定是沒有問題的,因為他們是最火的兩個深度學習框架了。但是說到 PyTorch,其實應該先說 Torch。

1.1.2 Torch 是什麼?

Torch 英譯中:火炬

A Tensor library like Numpy, unlike Numpy it has strong GPU support. Lua is a wrapper for Torch (Yes! you need to have a good understanding of Lua), andfor that you will need LuaRocks package manager.

Torch 是一個與 Numpy 類似的張量(Tensor)操作庫,與 Numpy 不同的是 Torch 對 GPU 支持的很好,Lua 是 Torch 的上層包裝。

Torch isnot going anywhere. PyTorch and Torch use the same C libraries that contain all the performance: TH, THC, THNN, THCUNN and they will continue to be shared.We still and will have continued engineering on Torch itself, and we have no immediate plan to remove that.

PyTorch 和 Torch 使用包含所有相同性能的 C 庫:TH, THC, THNN, THCUNN,並且它們將繼續共享這些庫。

這樣的回答就很明確了,其實 PyTorch 和 Torch 都使用的是相同的底層,只是使用了不同的上層包裝語言。

註:LUA 雖然快,但是太小眾了,所以才會有 PyTorch 的出現。

1.1.3 重新介紹 PyTorch

PyTorch is an open source machine learning library for Python, based on Torch, used for applications such as natural language processing. It is primarily developed by Facebook's artificial-intelligence research group, and Uber's "Pyro" software for probabilistic programming is built on it.

PyTorch 是一個基於 Torch 的 Python 開源機器學習庫,用於自然語言處理等應用程式。 它主要由 Facebook 的人工智慧研究小組開發。Uber 的 "Pyro" 也是使用的這個庫。

PyTorch is a Python package that provides two high-level features:Tensor computation (like NumPy) with strong GPU acceleration Deep neural networks built on a tape-based autograd systemYou can reuse your favorite Python packages such as NumPy, SciPy and Cython to extend PyTorch when needed.

PyTorch 是一個 Python 包,提供兩個高級功能:

具有強大的 GPU 加速的張量計算(如 NumPy)包含自動求導系統的的深度神經網絡

1.1.4 對比 PyTorch 和 Tensorflow

沒有好的框架,只有合適的框架, 這裡有個簡單的對比,所以這裡就不詳細再說了 https://zhuanlan.zhihu.com/p/28636490 並且技術是發展的,這裡的對比也不是絕對的,比如 Tensorflow 在 1.5 版的時候就引入了 Eager Execution 機制實現了動態圖,PyTorch 的可視化,windows 支持,沿維翻轉張量等問題都已經不是問題了。

1.1.5 再次總結

PyTorch 算是相當簡潔優雅且高效快速的框架設計追求最少的封裝,儘量避免重複造輪子算是所有的框架中面向對象設計的最優雅的一個,設計最符合人們的思維,它讓用戶儘可能地專注於實現自己的想法大佬支持,與 google 的 Tensorflow 類似,FAIR 的支持足以確保 PyTorch 獲得持續的開發更新不錯的的文檔(相比 FB 的其他項目,PyTorch 的文檔簡直算是完善了,參考 Thrift),PyTorch 作者親自維護的論壇 供用戶交流和求教問題入門簡單

所以如果以上信息有吸引你的內容,那麼請一定要讀完這本書:)

1.2 Pytorch 環境搭建

PyTorch 的安裝十分簡單,根據 PyTorch 官網,對系統選擇和安裝方式等靈活選擇即可。 這裡以 anaconda 為例,簡單的說一下步驟和要點。 國內安裝 anaconda 建議使用清華或者中科大 [http://mirrors.ustc.edu.cn/help/anaconda.html] 鏡像,快的不是一點半點。

1.2.1 安裝 Pytorch

anaconda 安裝完成後可以開始創建環境,這裡以 win10 系統為例。打開 Anaconda Prompt

#pytorch 為環境名,這裡創建 python3.6 版。conda create -n pytorch python=3.6# 切換到 pytorch 環境activate pytorch#安裝 GPU 版本,根據 cuda 版本選擇 cuda80,cuda92,如果 cuda 是 9.0 版,則不需要#直接 conda install pytorch -c pytorch 即可# win 下查看 cuda 版本命令 nvcc -Vconda install pytorch cuda92 -c pytorch# cpu 版本使用# conda install pytorch-cpu -c pytorch# torchvision 是 torch 提供的計算機視覺工具包,後面介紹pip install torchvision

需要說明的一點是如果使用清華源,可以直接添加 pytorch 源鏡像去掉,並且去掉 - c pytorch 這樣才能使用鏡像源。

驗證輸入 python 進入

import torchtorch.__version__# 得到結果 '0.4.1'

1.2.2 配置 Jupyter Notebook

新建的環境是沒有安裝安裝 ipykernel 的所以無法註冊到 Jupyter Notebook 中,所以先要準備下環境

#安裝 ipykernelconda install ipykernel#寫入環境python -m ipykernel install --name pytorch --display-name "Pytorch for Deeplearning"

下一步就是定製 Jupyter Notebook

#切換回基礎環境activate base#創建 jupyter notebook 配置文件jupyter notebook --generate-config## 這裡會顯示創建 jupyter_notebook_config.py 的具體位置

打開文件,修改

c.NotebookApp.notebook_dir = '' 默認目錄位置c.NotebookApp.iopub_data_rate_limit = 100000000 這個改大一些否則有可能報錯

1.2.3 測試

至此 Pytorch 的開發環境安裝完成,可以在開始菜單中打開 Jupyter Notebook 在 New 菜單中創建文件時選擇 Pytorch for Deeplearning 創建 PyTorch 的相關開發環境了

1.2.4 問題解決

問題 1:啟動 python 提示編碼錯誤

刪除 .python_history 來源

問題 2 默認目錄設置不起效

打開快捷方式,看看快捷方式是否跟這個截圖一樣,如果是則刪除 % USERPROFILE% 改參數會覆蓋掉 notebook_dir 設置,導致配置不起效

如果你還發現其他問題,請直接留言

1.3 PyTorch 深度學習:60 分鐘快速入門 (官方)

本章為官方網站的 [Deep Learning with PyTorch: A 60 Minute Blitz] (https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html) 的中文翻譯,目前在網上看到所有中文翻譯版本都已經過時了,所以才又從新翻譯了一遍,確保與官方同步

目錄

張量Autograd: 自動求導 本章是衝突的重災區,建議閱讀神經網絡訓練一個分類器選讀:數據並行處理 (多 GPU)

說明

本章中的所有圖片均來自於 PyTorch 官網,版權歸 PyTorch 所有.

更多閱讀

看完這個文,你還會高喊快快造出「中國芯」?騰訊給出27億美元估值,Reddit要成中國公司?四年三次上春晚,大型仿人服務機器人中國造!

相關焦點

  • Pytorch 中文文檔和中文教程
    簡單介紹GitHub項目管理:https://github.com/apachecn/pytorch-doc-zhPytorch 版本地址:https://pytorch.apachecn.org項目所翻譯的Pytorch版本
  • PyTorch 深度學習官方入門中文教程 pdf 下載|PyTorchChina
    在行動裝置上使用模型圖三-聊天機器人項目實戰PyTorch 深度學習官方入門中文教程pdf 下載地址:http://pytorchchina.com/轉載請註明出處。
  • 圖靈獎得主力推:PyTorch 1.3 今天發布
    圖靈獎得主,被譽為「深度學習三座山頭」之一的 LeCun 發推稱讚。本次 PyTorch1.3 更新增加了很多的新特性,包括無縫行動裝置部署、量化模型以加速推斷、前端改進(如對張量進行命名和創建更乾淨的代碼)。PyTorch 官方同時還開源了很多新工具和庫。在開發者大會上,PyTorch 官方表示甚至微軟都將其列入了支持的深度學習框架中。
  • 福利,PyTorch中文版官方教程來了
    機器之心整理參與:一鳴PyTorch 中文版官方教程來了。PyTorch 是近年來較為火爆的深度學習框架,然而其中文版官方教程久久不來。教程作者來自 pytorchchina.com。教程網站:http://pytorch123.com教程裡有什麼教程根據 PyTorch 官方版本目錄,完整地還原了所有的內容。
  • 大家心心念念的PyTorch Windows官方支持來了
    五個小時前,PyTorch 官方 GitHub 發布 0.4.0 版本,大家心心念念的 Windows 支持終於來了。GitHub 發布地址:https://github.com/pytorch/pytorch/releasesPyTorch 官網:http://pytorch.org/
  • PyTorch Hub輕鬆解決論文可復現性
    圖靈獎得主Yann LeCun發推表示,只需要一行代碼就可以調用所有倉庫裡的模型,通過一個pull請求來發布你自己的模型。同時,PyTorch Hub整合了Google Colab,併集成了論文代碼結合網站Papers With Code,可以直接找到論文的代碼。PyTorch Hub怎麼用?
  • 獨家 | 教你使用torchlayers 來構建PyTorch 模型(附連結)
    torchlayers 的GitHub 主頁提供了一些例子來展示它的一些功能。我喜歡這個圖像和文本分類二合一的例子(見下面連結)!highlight=build#torchlayers.build)來構建一個已經定義好的網絡。# Image...
  • PyTorch中使用DistributedDataParallel進行多GPU分布式模型訓練
    計算的總體速度取決於最慢的連接,因此基於大參數伺服器的模型訓練作業在實踐中效率非常低,將網絡GPU利用率推到50%或以下。更現代的分布式培訓策略廢除了參數伺服器,在DistributedDataParallel 並行策略中,每個進程都是一個工作進程。每個進程仍然在內存中維護模型權重的完整副本,但是批處理片梯度更新現在是同步的,並且直接在工作進程本身上平均。
  • Pytorch 1.1.0駕到!小升級大變動,易用性更強,支持自定義RNN
    Pytorch 1.1.0,來了!但是可以應用TorchScript來融合操作並自動優化代碼,在GPU上啟動更少、更優化的內核。此次更新的目標之一是讓用戶能夠在TorchScript中編寫快速,自定義的RNN,而無需編寫專門的CUDA內核來實現類似的性能。接下來將提供如何使用TorchScript編寫自己的快速RNN的教程。
  • 新版PyTorch 1.2 已發布:功能更多、兼容更全、操作更快!
    每項工具都進行了新的優化與改進,兼容性更強,使用起來也更加便捷。PyTorch 發布了相關文章介紹了每個工具的更新細節,雷鋒網 AI 開發者將其整理與編譯如下。PyTorch 簡介自 PyTorch 1.0 發布以來,我們的社區不斷在進行擴展、添加入新的工具。這些發展為 PyTorch Hub 中越來越多可用的模型做出了極大的貢獻,並不斷增加了其在研究和生產中的用途。
  • 超算安裝GPU-based軟體 (以pytorch為例)
    一般運作方式是,如果我的計算依賴非常共性的軟體,我可以找超算管理員安裝,使用的時候可以通過module load來初始化自己所需軟體。已有共性軟體如下:Vasp和Gaussian是算力消耗的大頭,但是超算用戶覆蓋幾十個學院的幾百個方向,不可能面面俱到,把所有人需要的軟體都裝在/opt 也是不現實的。
  • 指導手冊來了
    衢州發展越來越好,城市越來越美,來衢州觀光旅遊、辦事經商的外國人也越來越多了。 為了方便外國遊客,很多中文標識旁邊都會標註外語翻譯。這種體貼的行為,如果疏忽大意,很容易成為「神翻譯」,讓人笑癱在路上。
  • Pytorch-Transformers 1.0 發布,支持六個預訓練框架,含 27 個預...
    哪些支持PyTorch-Transformers(此前叫做pytorch-pretrained-bert)是面向自然語言處理,當前性能最高的預訓練模型開源庫。Le6、Facebook的 XLM,論文:「 Cross-lingual Language Model Pretraining」,論文作者:Guillaume Lample,Alexis Conneau這些實現都在幾個數據集(參見示例腳本)上進行了測試,性能與原始實現相當,例如 BERT中文全詞覆蓋在 SQuAD數據集上的F1分數為93
  • Pytorch框架安裝方法(基於Anaconda環境和Pycharm IDE)
    1.6 單擊啟動Anaconda Prompt 創建虛擬「房間」通過conda創建一個名為:pytorch的虛擬「房間」,可以方便未來對不同版本的PyTorch進行管理,具體方法如下:conda create -n pytorch python=3.61.7 查看創建的「房間」方法:conda info --envs
  • 重磅| Torch7團隊開源PyTorch:Python優先的深度學習框架
    官網:http://pytorch.orgGitHub:https://github.com/pytorch/pytorchPyTorch 是一個 Python 軟體包,其提供了兩種高層面的功能:使用強大的 GPU 加速的 Tensor 計算(類似 numpy)構建於基於 tape 的 autograd 系統的深度神經網絡如有需要,你也可以復用你最喜歡的
  • PyTorch 0.2發布:更多NumPy特性,高階梯度、分布式訓練等
    PyTorch的GitHub新版發布說明中介紹了0.2版的以下新特性:NumPy風格的Tensor BroadcastingBroadcasting是NumPy在算數運算中處理不同形狀數組的一種方式,在特定條件下,比較小的數組會通過比較大的數組進行「廣播」,來獲得相應的形狀。
  • 雲計算學習:用PyTorch實現一個簡單的分類器
    所以我總結了一下自己當初學習的路線,準備繼續深入鞏固自己的 pytorch 基礎;另一方面,也想從頭整理一個教程,從沒有接觸過 pytorch 開始,到完成一些最新論文裡面的工作。以自己的學習筆記整理為主線,大家可以針對參考。第一篇筆記,我們先完成一個簡單的分類器。
  • PyTorch 1.7發布,支持CUDA 11、Windows分布式訓練
    PyTorch 1.7 部分新特性,詳情參見 https://github.com/pytorch/pytorch/releases/tag/v1.7.0。參考連結:https://pytorch.org/blog/pytorch-1.7-released/https://github.com/pytorch/pytorch/releases/tag/v1.7.0https://www.reddit.com/r/MachineLearning
  • 六本男主保鏢文:《絲絲入骨》《阿南和阿蠻》《保鏢1997》強推!
    多多推書來啦!大家好!今天給大家推薦六本男主保鏢系列小說,這六本本本都是經典,作者的文筆有保障,情節跌宕起伏不老套,值得大家收藏哦!個人推薦《絲絲入骨》《阿南和阿蠻》《保鏢1997》!七本仙俠修真文:《樓邊人似玉》《護心》《半城風月》強安利!
  • 華為雲應用編排,手把手教您完成pytorch代碼部署
    本文將以一個使用了pytorch的demo代碼pytorch-classify為例,通過華為雲上的容器服務一鍵式部署, 5 分鐘完成免費的雲上pytorch代碼的部署。傳統部署方式首先是準備環境。先有個伺服器,這臺伺服器需要能夠被外部訪問。