``````

In [1]:

import torch
import numpy as np
from torch import nn                 # Basic Neural Network Module
import matplotlib.pyplot as plt      # Needs for Ploting

from scipy.stats import norm

``````

## 1. Data 정의

``````

In [2]:

sample_size = 100

x = torch.FloatTensor(sample_size, 1).uniform_(-1, 1)
y = 2*x + torch.randn(x.size())

plt.scatter(x, y)
plt.title("y=ax+b")
plt.grid()
plt.show()

``````
``````

``````

## 2. Linear Regression Model

``````

In [ ]:

# Model 정의
model = nn.Linear(1, 1, bias=True)

cost_function = nn.MSELoss()     # Mean Squared Cost Function
optimizer = torch.optim.SGD(model.parameters(), lr=0.05) # 일단 그려려니 하고 넘어가자

print(model)
print(model.weight, model.bias)

``````

## 3. Training Model

``````

In [5]:

# Training
epoch = 100

for step in range(epoch):
prediction = model(x)                     # model에 x를 넣어서 예측값을 만든다.
cost = cost_function(prediction, y) #  cost function으로 얼마나 잘했는지 판단(예측, 원결과)

cost.backward()
optimizer.step()

if not(step % 20):
plt.cla()
plt.scatter(x, y)
plt.plot(x.data.numpy(), prediction.data.numpy(), 'r-', lw=1)
plt.title('cost=%.4f, w=%.4f, b=%.4f' % (cost.item(), model.weight.item(),model.bias.item()), fontdict={'size': 20} )
plt.grid()
plt.show()
plt.pause(0.1)

``````
``````

``````
``````

In [ ]:

``````
``````

In [ ]:

``````