用paddle实现的线性回归的例子
时间: 2024-09-23 21:04:59 浏览: 39
在PaddlePaddle(飞桨)中,线性回归是一个简单的机器学习模型,用于预测连续数值。以下是一个使用Python和PaddlePaddle库实现简单线性回归的基本步骤:
```python
# 导入必要的模块
import paddle
from paddle import nn
# 创建数据
x_data = paddle.to_tensor([[1], [2], [3], [4], [5]])
y_data = paddle.to_tensor([[1], [3], [5], [7], [9]], dtype='float32') # 真实值
# 定义线性回归模型
class LinearRegressionModel(nn.Layer):
def __init__(self):
super(LinearRegressionModel, self).__init__()
self.linear = nn.Linear(in_features=1, out_features=1)
def forward(self, x):
y_pred = self.linear(x)
return y_pred
model = LinearRegressionModel()
# 定义损失函数(均方误差)
loss_fn = nn.MSELoss()
# 初始化优化器
optimizer = paddle.optimizer.SGD(learning_rate=0.01, parameters=model.parameters())
# 训练循环
for epoch in range(100): # 进行多次迭代
y_pred = model(x_data) # 预测
loss = loss_fn(y_pred, y_data) # 计算损失
loss.backward() # 反向传播更新权重
optimizer.step() # 更新参数
optimizer.clear_grad() # 清除梯度
print(f"Epoch {epoch+1}, Loss: {loss.numpy()[0]}")
# 测试模型
test_x = paddle.to_tensor([[6]])
test_y_pred = model(test_x)
print(f"Predicted value for test input 6: {test_y_pred.numpy()[0][0]}")
```
在这个例子中,我们首先创建了一些模拟的数据点,然后定义了一个包含一个线性层的模型。接着,我们使用均方误差作为损失函数,并选择随机梯度下降法作为优化器。在训练过程中不断调整模型参数,使得预测值更接近真实值。
阅读全文