行业资讯

15.初识Pytorch反向传播(Backward)与优化器(optimizer)SGD

以下是一个简单的PyTorch反向传播的例子: ```python import torch # 定义输入和输出 x=torch.tensor([1.0, 2.0, 3.0, 4.0], requires_grad=True) y=torch.tensor([2.0, 4.0, 6.0, 8.0], requires_grad=True) # 定义模型 w=torch.tensor([0.0, 0.0, 0.0, 0.0], requires_grad=True) b=torch.tensor(0.0, requires_grad=True) # 定义损失函数 loss_fn=torch.nn.MSELoss() # 定义优化器 optimizer=torch.optim.SGD([w, b], lr=0.01) # 训练模型 for epoch in range(100): # 前向传播 y_pred=torch.dot(w, x) + b loss=loss_fn(y_pred, y) # 反向传播 loss.backward() # 更新参数 optimizer.step() # 清空梯度 optimizer.zero_grad() # 输出最终结果 print("w=", w) print("b=", b) ``` 该例子中,我们定义了一个简单的线性模型,使用均方误差作为损失函数,使用随机梯度下降作为优化器。在训练过程中,我们首先进行前向传播计算出预测值,然后计算损失并进行反向传播,最后更新模型参数。最终输出训练得到的参数w和b。

平台注册入口