Pytorch的神经网络编程学习第一节
官網:https://pytorch.org/
Pytorch最早是在2016年10月份發布的,在發布Pytorch之前還有一個叫做Torch的框架。Torch是一種機器學習框架,是基于lua編程語言的。所有深度學習框架都有兩個特性:一個張量庫和一個用于計算導數的包。
在神經網絡經驗方面,本系列中使用Pytorch,Pytorch本身就是一個非常簡潔的用于深度學習神經網絡編程接口(API),是用于python的深度學習神經網絡包。所以首先要有深度學習的基礎。
Deeplizard深度學習課程:(Youtube上有視頻播放列表)
https://deeplizard.com/(在這個上邊查看文本版本,是這些的最新版本。所有的更新都在這個里面,不是視頻文件中)
https://deeplizard.com/learn/playlist/
https://deeplizard.com/learn/playlist/PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU
https://deeplizard.com/learn/video/gZmobeGL0Yg
所有的代碼文件都可以在deeplizard網站中的hive mind找到。
神經網絡編程系列的第一部分,由兩個子部分組成:
- 第一部分是PyTorch。
- 第二部分是Tensors(深度學習的數據結構)。使用Pytorch來實現張量。(編程神經網絡和深度學習肯定需要使用張量)
第一部分會涉及到Cuda,一個在英偉達GPU上進行并行編程的軟件平臺。為什么深度學習會首先使用GPU,在Cuda講解中會說明(為什么要使用Cuda進行深度學習)。
神經網絡編程系列的第二部分,由三個子部分組成:
- 第一部分是深度學習的數據和數據處理。
- 第二部分是如何構建神經網絡。
- 第三部分是如何通過構建一個訓練循環來訓練自己的網絡。
訓練循環通過優化神經網絡的權重,來適應我們自己的數據集。訓練循環是使用實際的Python循環構建的。
鏈接:https://scipy.org/
PyTorch既是一個深度學習框架,也是一個科學計算包。PyTorch的科學計算方面主要是PyTorch張量庫和相關張量運算的結果。
張量是一個n維數組或者一個n-D數組。對于Python來說最流行的科學計算包之一是Numpy。Numpy是n維數組的轉換包,Pytorch是一個張量庫,他非緊密的反映了numpy的多維數組功能,他與numpy本身具有高度的互操作性。使用Pytorch張量,GPU支持是內置的,如果在我們的系統上安裝了它,那么他就可以很容易的將張量移動到GPU上。
1、torch包是包含所有其他包和張量庫的頂級包。
2、torch.nn和3、torch.autograd是PyTorch的主要工作包。Torch.nn在這里代表的是神經網絡,包含類和模塊,比如圖層、權重和前向函數。神經網絡是建立在Torch.nn的基礎上;Torch.autograd是一個子包,他負責處理在核心處優化我們的神經網絡權重,所需的導數計算。所有深度學習框架都有兩個特性:一個張量庫和一個用于計算導數的包。對于Pytorch這兩個是1、Torch和3、Torch.autograd。
4、torch.nn.functional和5、torch.optim。這兩個是針對于典型的深度學習函數和優化算法。torch.nn.functional是功能接口,他讓我們能夠訪問像損失函數,激活函數和卷積運算。torch.optim使我們能夠訪問典型的優化,像SGD和Adam這樣的算法。
6、torch.utils是一個子包。他包含像數據集和數據加載器這樣的實用程序類,使數據預處理更加容易。
7、torchvision這是一個單獨的包。他能讓我們訪問流行的數據集、計算機視覺的模型架構和圖像轉換。
在一個項目中我們將會處理所有這些包,多做幾個項目,你就會非常熟悉和適應這些包。
?
?
總結
以上是生活随笔為你收集整理的Pytorch的神经网络编程学习第一节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python基础知识整理 第七节:单例设
- 下一篇: C++:将char*指针强制转换成一个指