理解神經網絡的基本組成部分,如張量、張量運算和梯度遞減等算法
[TOC]網絡
2.1 安裝PyTorch
使用pip或者conda來安裝,推薦使用Anaconda Python3發行版dom
最新版本的安裝:conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
函數
2.2 實現第一個神經網絡
準備數據
- 標量(0維張量)
- 向量(1維張量)
- 矩陣(2維張量)
- 3維張量
- 切片張量
- 4維張量
- 5維張量
- GPU張量
建立數據
- 建立學習參數 變量的建立,requires_grad的值是False;初始化學習參數,requires_grad的值是True
- 神經網絡模型
- 網絡的實現 PyTorch在torch.nn中提供了稱爲層(layer)的高級抽象,層將負責多數常見的技術都須要用到的後臺初始化和運算工做。
- 損失函數 torch.nn庫中有不一樣的損失函數,如均方差(又稱方差,MSE)損失和交叉熵損失。
- 優化神經網絡 不一樣的優化器,如Adam、RmsProp和SGD,已在torch.optim包中實現好
加載數據
兩個重要的工具類:Dataset類和DataLoader類工具
- Dataset類 任何自定義的數據集類,都要繼承自PyTorch的數據集類。 自定義的類必須實現兩個函數:len(self)和__getitem__(self,idx)
- DataLoader類 DataLoader類經過提取出大部分複雜度來幫助建立批數據。 DataLoader類位於PyTorch的utils類中,它將數據集對象和不一樣的取樣器聯合,如SequentialSampler和RandomSampler,並使用單進程或多進程的迭代器,爲咱們提供批量圖片。 取樣器是爲算法提供數據的不一樣策略。 PyTorch團隊也維護了兩個有用的庫,即torchvision和torchtext,這兩個庫基於Dataset和DataLoader類構建。