PyTorch简介
? ? ? ? PyTorch是一個針對深度學習,并且使用GPU和CPU來優化的tensor library(張量庫)。最新發布的穩定版本為1.9,源碼在https://github.com/pytorch/pytorch 。它支持在Linux、Mac和Windows上編譯和運行。調用Python接口可以通過Anaconda或Pip的方式安裝,調用C++接口可直接下載對應的二進制庫。對PyTorch比較熟悉了,也可以通過源碼直接編譯。
? ? ? ? PyTorch是基于以下兩個目的而打造的python科學計算框架:
? ? ? ? (1). 無縫替換NumPy,并且通過利用GPU的算力來實現神經網絡的加速。
? ? ? ? (2). 通過自動微分機制,讓神經網絡的實現變得更加容易
? ? ? ? 張量(Tensor)如同數組和矩陣一樣,是一種特殊的數據結構。在PyTorch中,神經網絡的輸入、輸出以及網絡的參數等數據,都是使用張量來進行描述。
? ? ? ? 張量的使用和Numpy中的ndarrays很類似,區別在于張量可以在GPU或其它專用硬件上運行,這樣可以得到更快的加速效果。
? ? ? ? 可以使用torch.nn包構建神經網絡,包含各種layer的實現。torch.nn.functional中包含了多種激活函數、損失函數的實現。
? ? ? ? 可以使用torch.optim包提供的算法來優化模型,如SGD、AdaGrad、RMSProp、Adam等。
? ? ? ? 可以使用torch.autograd包提供的自動微分(即計算梯度)來自動計算神經網絡中的反向傳播。
? ? ? ? 通過Anaconda在Windows和Ubuntu上安裝不帶CUDA版的PyTorch 1.8.1,依次執行如下命令:
conda create -n pytorch1.8.1
conda activate pytorch1.8.1
conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cpuonly -c pytorch
? ? ? ? 安裝帶CUDA 10.2版本的則執行如下命令:
conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=10.2 -c pytorch
? ? ? ? PyTorch主要模塊:
? ? ? ? (1). C10:通用tensor操作,由C++或CUDA實現。
? ? ? ? (2). ATen:基礎tensor和數學運算庫,依賴C10,由C++或CUDA實現,PyTorch中幾乎所有其它Python和C++接口都建立在它之上。
? ? ? ? (3). Caffe2:一種新的輕量級、模塊化和可擴展的深度學習框架,Caffe2建立在原始Caffe的基礎上,依賴C10、ATen,由C++或CUDA實現。
? ? ? ? (4). Torch:包含多維tensor的數據結構以及基于其上的多種數學運算操作。此外,它還提供了許多實用工具,如可以更有效地對tensor和任意類型進行序列化。它依賴C10、Caffe2,由C++或CUDA或Python實現。
? ? ? ? TorchVision:源碼在https://github.com/pytorch/vision,最新發布版本為0.10.0,PyTorch的計算機視覺庫,支持數據集下載和load、模型架構和計算機視覺的通用圖像操作,依賴C10、ATen、Torch、caffe2,由C++或CUDA或Python實現。
? ? ? ? TorchAudio:源碼在https://github.com/pytorch/audio,最新發布版本為0.9.0,PyTorch的音頻庫,依賴C10、ATen、Torch,由C++或Python實現。
? ? ? ? TorchText:源碼在https://github.com/pytorch/text,最新發布版本為0.10.0,PyTorch的文本處理和NLP庫,依賴C10、ATen、Torch,由C++或Python實現。
? ? ? ? GitHub:https://github.com/fengbingchun/PyTorch_Test
總結
- 上一篇: Windows/Linux上使用fope
- 下一篇: C/C++包管理工具Conan简介