完整**
#實現分類
import
torch
import
torch.nn.functional as f
from torch.autograd import
variable
import
matplotlib.pyplot as plt
import
torch.optim as optim
#生成資料
n_data = torch.ones(100, 2)
x0 = torch.normal(2*n_data, 1)
y0 = torch.zeros(100)
x1 = torch.normal(-2*n_data,1)
y1 = torch.ones(100)
#x當做資料,y當做標籤
x =torch.cat((x0,x1), 0).type(torch.floattensor)
y =torch.cat((y0,y1), ).type(torch.longtensor)
x,y =variable(x),variable(y)
#繪製影象
#plt.scatter(x.data.numpy()[:, 0], x.data.numpy()[:, 1], c=y.data.numpy(), s=100, lw=0, )
#plt.show()
#定義網路
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)
defforward(self, x):
x =f.relu(self.hidden(x))
x =self.predict(x)
returnx#
輸入是兩個特徵,x對應的特徵和y對應的特徵,輸出是2個類,0和1
net = net(2, 10, 2)
#print(net)
#輸出為[0,1]說明為class1,若是[1,0],說明輸出為class0。這是二分類
#輸出為[0,1,0]說明為class1,若是[1,0,0],說明輸出為class0,若是[0,0,1],說明輸出為class2。這是三分類#優化
optimizer = optim.sgd(net.parameters(), lr=0.02)
loss_func =torch.nn.crossentropyloss()
#輸出是概率
#視覺化
plt.ion()
#plt.show()
for t in range(100):
out =net(x)
loss = loss_func(out, y) #
**值和真實值
optimizer.zero_grad()
loss.backward()
optimizer.step()
#視覺化
if t % 2 ==0:
plt.cla()
prediction = torch.max(f.softmax(out), 1)[1]
pred_y =prediction.data.numpy().squeeze()
target_y =y.data.numpy()
plt.scatter(x.data.numpy()[:, 0], x.data.numpy()[:, 1], c=pred_y, s=100, lw=0, cmap='
rdylgn')
accuracy = sum(pred_y == target_y)/200plt.text(1.5, -4, '
accuracy=%.2f
' % accuracy, fontdict=)
plt.pause(0.1)
plt.ioff()
plt.show()
PyTorch分類神經網路
這次我們也是用最簡單的途徑來看看神經網路是怎麼進行事物的分類.我們建立一些假資料來模擬真實的情況.比如兩個二次分布的資料,不過他們的均值都不一樣.import torch import matplotlib.pyplot as plt 假資料 n data torch.ones 100,2 資料的基...
Pytorch 通過pytorch實現線性回歸
linear regression 線性回歸是分析乙個變數與另外乙個 多個 變數之間關係的方法 因變數 y 自變數 x 關係 線性 y wx b 分析 求解w,b 求解步驟 1.確定模型 2.選擇損失函式 3.求解梯度並更新w,b 此題 1.model y wx b 下為 實現 import tor...
pytorch筆記5 分類
用簡單的例子看一下神經網路是怎麼分類的 有兩組資料,一組資料屬於分類1,一組資料屬於分類0 建立資料 n data torch.ones 100,2 data1 torch.normal 2 n data,1 其中一組資料的x座標和y座標都包含再data1中 label1 torch.zeros 1...