1.Prepare dataset
2.Design model using Class
计算 ,不是计算loss。
class LinearModel(torch.nn.Module):
def __init__(self):
super(LinearModel, self).__init__()
self.linear = torch.nn.Linear(1, 1) ##nn.Linear包含两种tensor:weight和bias
def forward(self, x):
y_pred = self.linear(x)
return y_pred
model = LinearModel()
##Module自动进行反向传播,Functions可以自己设计反向传播
3.Construct loss and optimizer
使用pytorch API,
criterion = torch.nn.MSELoss(size_average=False)
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
4.Training cycle
forward,backward,update
for epoch in range(1000):
y_pred = model(x_data)
loss = criterion(y_pred, y_data)
print(epoch, loss.item())
optimizer.zero_grad()
loss.backward()
optimizer.step()