深度学习框架:用 PyTorch 写一个简单的线性回归函数。 线性回归都可以通过最小二乘法求出其方程。线性回归属于监督学习因此方法和监督学习应该是一样的先给定一个训练集根据这个训练集学习出一个线性函数然后测试这个函数训练得好不好即此函数是否足够拟合训练集数据挑选出最好的函数Cost Function 最小即可。Cost Function 越小的函数说明对训练数据拟合得越好
。
在 PyTorch 中,可以使用 torch.nn 模块来实现线性回归模型。下面是一个简单的示例代码:
import torch
import torch.nn as nn
# 定义训练集
x = torch.tensor([[1.0], [2.0], [3.0], [4.0]])
y = torch.tensor([[2.0], [4.0], [6.0], [8.0]])
# 定义模型
model = nn.Linear(1, 1)
# 定义损失函数
criterion = nn.MSELoss()
# 定义优化器
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
# 训练模型
num_epochs = 1000
for epoch in range(num_epochs):
# 前向传播
y_pred = model(x)
# 计算损失
loss = criterion(y_pred, y)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 打印损失
if (epoch+1) % 100 == 0:
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item()))
# 测试模型
x_test = torch.tensor([[5.0]])
y_test_pred = model(x_test)
print('Test Prediction: {:.4f}'.format(y_test_pred.item()))
在上面的代码中,我们先定义了训练集 x 和 y,然后定义了一个线性模型 model,该模型有一个输入和一个输出,即输入为 1,输出为 1。接着定义了损失函数 criterion,这里使用的是均方误差(MSE)损失函数。然后定义了优化器 optimizer,这里使用的是随机梯度下降(SGD)优化器。接下来开始训练模型,训练过程中,先进行前向传播,然后计算损失,接着进行反向传播,最后更新模型参数。训练完毕后,我们使用训练好的模型进行预测,输出预测结果
原文地址: http://www.cveoy.top/t/topic/hkMu 著作权归作者所有。请勿转载和采集!