最近整理了一下pytorch的筆記,把很簡單的pytorch搭建乙個回歸網路的code貼上來
import torch
import torch.nn.functional as f
x = torch.unsqueeze(torch.linspace(-2, 2, 100), dim=1)
#在(-1,1)這個區間內隨機生成100個x,並且利用unsqueeze增加維度來滿足torch的需求
y = x.pow(3) + 0.9!
[在這裡插入描述]
())# 生成y
#想把tensor轉換成numpy用.data.numpy()
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)
# hidden layer
self.predict = torch.nn.linear(n_hidden, n_output)
# 全連線層
def forward(self, x):
x = f.relu(self.hidden(x))
# hidden layer 經過激勵函式
x = self.predict(x)
return x
net = net(n_feature=1, n_hidden=10, n_output=1)
# 定義神經網路,乙個輸入,10個神經元(一層),乙個輸出
optimizer = torch.optim.sgd(net.parameters(
), lr=0.1)
#優化器,本次採用的是sgd優化
loss_func = torch.nn.mseloss(
)#mean squared loss 均值方差,針對回歸問題
for t in range(500):
prediction = net(x)
loss = loss_func(prediction, y)
# 計算損失函式
optimizer.zero_grad(
)# 清除本次的梯度
loss.backward(
)# 反向傳播計算梯度
optimizer.step(
)# 每一步用優化器優化一次
執行結果
利用Menu和MultiView做乙個選單導航
後台 如下 using system using system.collections.generic using system.linq using system.web using system.web.ui using system.web.ui.webcontrols namespace p...
不談技術 做乙個好人,乙個簡單的人
有時,我們往往會誤會一些人,一些事,這是正常的,因為每個人的想法不錯,思考問題的方式不同,產生的結果當然也就不同。有時,我們會犯一些錯誤,一些可笑的錯誤,但重要的是,如果你知道了你是錯誤的,一定要馬上改正,越快越好,因為只有這樣,所產生的負面影響才是最小的。人是很有意思的動物,他們有自己的思維,他們...
不談技術 做乙個好人,乙個簡單的人
有時,我們往往會誤會一些人,一些事,這是正常的,因為每個人的想法不錯,思考問題的方式不同,產生的結果當然也就不同。有時,我們會犯一些錯誤,一些可笑的錯誤,但重要的是,如果你知道了你是錯誤的,一定要馬上改正,越快越好,因為只有這樣,所產生的負面影響才是最小的。人是很有意思的動物,他們有自己的思維,他們...