【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)