類似numpy,pytorch就是在神經網路領域代替numpy的模組
神經網路在做什麼?
pytorch類似tensorflow使用tensor表示高維資訊
參考pytorch環境搭建
或者看pytorch官方文件
官網命令安裝了兩個東西
可以進行一些矩陣相關的運算
莫煩莫煩
激勵函式必須使可微分的,在反向傳播back propagation的時候,只有可微分的才可以把誤差傳遞回去
需要注意的是,如果隱藏層比較少,可以隨便選擇啟用函式,在隱藏層比較多的時候,需謹慎考慮,存在梯度**和梯度消失的問題
預設首選
學習資料:
幾種啟用函式影象
另外softmax是一種做出來是概率圖,不是線圖
關於影象可以看莫煩python教程關於matplotlib,numpy以及pandas的介紹
回歸:損失函式一般使用torch.nn.mseloss()
import torch
import matplotlib.pyplot as plt
x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1) # x data (tensor), shape=(100, 1)
y = x.pow(2) + 0.2*torch.rand(x.size()) # noisy y data (tensor), shape=(100, 1)
# 畫圖
plt.scatter(x.data.numpy(), y.data.numpy())
plt.show()
分類:損失函式一般使用torch.nn.crossentropyloss()
:比如類別[0,0,1] 計算出的概率[0.1,0.2,0.7]
主要直接採用torch.nn
提供的類來搭建-->對比之前使用import torch.nn.functional as f
之後使用一系列函式如relu()
使用import torch.nn.functional as f
搭建
import torch
import torch.nn.functional as f
class net(torch.nn.module):
def __init__(self, n_feature, n_hidden, n_output):
super(net, self).__init__()
self.hidden = torch.nn.linear(n_feature, n_hidden)
self.predict = torch.nn,linear(n_hidden, n_output)
def forward(self, x):
x = f.relu(self.hidden(x))
x = self.predict(x)
return x
使用torch.nn
提供的類搭建
import torch
net = torch.nn.sequential(
torch.nn.linear(2,10)
torch.nn.relu()
torch.nn.linear(10,2),
)
主要有兩種方式: 莫煩pytorch學習筆記
此處x,y為資料集的tensor torch dataset data.tensordataset data tensor x,target tensor y loader data.dataloader dataset torch dataset,batch size batch size,shu...
莫煩 pytorch筆記 variable是什麼
variable型別是什麼 variable tensor1 torch.floattensor 1,2 3,4 建立tensor variable variable tensor1,requires grad true 建立variable。其中requires grad是誤差反向傳播 計算梯度的...
莫煩pytorch批訓練
import torch import torch.utils.data as data 包裝資料類 tensordataset 包裝資料和目標張量的資料集,通過沿著第乙個維度索引兩個張量來 class torch.utils.data.tensordataset data tensor,targe...