AI入门的pytorch代码,举例子(用python做算法)

PyTorch 是一个流行的开源机器学习库,广泛用于计算机视觉和自然语言处理等应用。以下是使用 PyTorch 进行简单线性回归的入门代码示例:

import torch import torch.nn as nn # 假设我们有一些数据点 x_train = torch.tensor([[1.0], [2.0], [3.0], [4.0]], dtype=torch.float32) y_train = torch.tensor([[2.0], [4.0], [6.0], [8.0]], dtype=torch.float32) # 定义一个简单的线性模型 class LinearRegressionModel(nn.Module): def __init__(self): super(LinearRegressionModel, self).__init__() self.linear = nn.Linear(1, 1) # 1个输入特征,1个输出特征 def forward(self, x): return self.linear(x) # 实例化模型 model = LinearRegressionModel() # 定义损失函数(均方误差) criterion = nn.MSELoss() # 定义优化器 optimizer = torch.optim.SGD(model.parameters(), lr=0.01) # 训练模型 num_epochs = 100 for epoch in range(num_epochs): # 前向传播 outputs = model(x_train) loss = criterion(outputs, y_train) # 反向传播和优化 optimizer.zero_grad() # 清除之前的梯度 loss.backward() # 反向传播,计算当前梯度 optimizer.step() # 根据梯度更新参数 if (epoch+1) % 10 == 0: print(f’Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}’) # 测试模型 with torch.no_grad(): # 测试时不需要计算梯度 predicted = model(x_train) print(f’Predictions: {predicted}’) # 打印最终参数 print(f’Final learned weights: {model.linear.weight}’) print(f’Final learned bias: {model.linear.bias}’)

这段代码首先导入了必要的 PyTorch 模块,然后创建了一些简单的输入数据 x_train 和对应的目标输出 y_train。接着定义了一个线性回归模型 LinearRegressionModel,该模型包含一个线性层 nn.Linear(1, 1)。然后定义了损失函数 MSELoss 和优化器 SGD。

在训练循环中,我们执行了前向传播、计算损失、执行反向传播并更新模型参数的步骤。每训练10个周期,我们打印一次当前的损失值。训练完成后,我们使用 with torch.no_grad() 语句测试模型的预测结果,并打印出模型学到的权重和偏置。

这是一个非常基础的 PyTorch 入门示例,适合初学者理解 PyTorch 的基本概念和操作流程。

0
分享到:
没有账号? 忘记密码?