def model2(self): input_dim = 4 output_dim = 1 model = Model2.LinearRegressionModel(input_dim, output_dim) criterion = nn.MSELoss() # 损失函数为均方差 learning_rate = 0.01 self.optimizer21 = torch.optim.SGD(model.parameters(), lr=learning_rate) '''训练网络''' for epoch in range(self.epochs21): epoch += 1 # 清空梯度参数 self.optimizer21.zero_grad() # 获得输出 outputs = model(self.x) # 计算损失 loss = criterion(outputs, self.y) # 反向传播 loss.backward() # 更新参数 self.optimizer21.step() return model
def __init__(self): self.train_number = 200 self.model11 = Model1.NonLinearRegression() self.model21 = Model2.LinearRegressionModel(4, 1) learning_rate = 0.01 self.optimizer11 = torch.optim.SGD(self.model11.parameters(), lr=learning_rate) self.optimizer21 = torch.optim.SGD(self.model21.parameters(), lr=learning_rate) self.max = 0 self.min = 0