
【pytorchでニューラルネットワーク#4】単回帰分析
記事の目的
pytorchで単回帰分析について実装していきます。ここにある全てのコードは、コピペで再現することが可能です。
目次
1 ライブラリとデータの作成

# In[1] import torch import torch.nn as nn import torch.optim as optim import matplotlib.pyplot as plt torch.manual_seed(1) # In[2] x_train = torch.normal(5, 1, size=(10,)) t_train = 3*x_train + 2 + torch.randn(10) x_train = x_train.unsqueeze(1).float() t_train = t_train.unsqueeze(1).float() # In[3] plt.scatter(x_train,t_train)
2 モデル

# In[4] model = nn.Linear(1, 1) criterion = nn.MSELoss() optimizer = optim.SGD(model.parameters(), lr=1e-2) # In[5] list(model.parameters())
3 モデルの学習

# In[6]
for epoch in range(1, 5 + 1):
y = model(x_train)
loss_train = criterion(y, t_train)
optimizer.zero_grad()
loss_train.backward()
optimizer.step()
print(f"Epoch {epoch}, loss_train {loss_train:.4f}")
4 結果の可視化

# In[7] x = torch.arange(3,7).unsqueeze(1).float() y = model(x) plt.plot(x, y.detach()) plt.scatter(x_train, t_train)