美文网首页
基于pytorch搭建一元线性回归模型

基于pytorch搭建一元线性回归模型

作者: 周周周__ | 来源:发表于2020-11-24 12:22 被阅读0次
'''
基于pytorch搭建一元线性回归模型
'''
import torch
import numpy as np
import torch.nn as nn
import torch.optim as optim
import matplotlib.pyplot as plt


class LinerRegression(nn.Module):
    def __init__(self):
        super(LinerRegression, self).__init__()
        self.linear = nn.Linear(1, 1)  # 输入和输出均为一维

    def forward(self, x):
        out = self.linear(x)
        return out


x_train = np.array(
    [[3.3], [4.4], [5.5], [6.71], [6.93], [4.168], [9.779], [6.182], [7.59], [2.167], [7.042], [10.791], [5.313],
     [7.997], [3.1]], dtype=np.float32)
y_train = np.array(
    [[1.7], [2.76], [2.09], [3.19], [1.694], [1.573], [3.366], [2.596], [2.53], [1.221], [2.827], [3.465], [1.65],
     [2.904], [1.3]], dtype=np.float32)


x_train = torch.from_numpy(x_train)
y_train = torch.from_numpy(y_train)

model = LinerRegression()
criterion = nn.MSELoss()  # 定义损失函数和优化器,均方差作为优化器

num_epochs = 1000
for epoch in range(num_epochs):
    input = x_train
    target = y_train
    out = model(input)  # 训练,得到输出
    loss = criterion(out, target)  # 计算损失

    optimizer = optim.SGD(model.parameters(), lr=1e-3)  # 随机梯度下降优化器
    optimizer.zero_grad()  # 梯度清零
    loss.backward()  # 反向转播计算梯度
    optimizer.step()  # 梯度更新

    if (epoch + 1) % 20 == 0:
        print('Epoch[{}/{}], loss: {:.6f}'.format(epoch + 1, num_epochs, loss.item()))
model.eval()  # 没有预测值,这里用eval把值固定
predict = model(x_train)  # 得到训练结果
predict = predict.data.numpy()

plt.plot(x_train.numpy(), y_train.numpy(), 'ro', label='Original_data')
plt.plot(x_train.numpy(), predict, label='Fitting Line')
plt.show()

相关文章

  • 基于pytorch搭建一元线性回归模型

  • 动手学深度学习(一) 线性回归

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现...

  • 线性回归

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现...

  • 第一天-线性回归,Softmax与分类模型,多层感知机

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现...

  • 第一次打卡

    线性回归主要内容包括: 线性回归的基本要素线性回归模型从零开始的实现线性回归模型使用pytorch的简洁实现线性回...

  • 动手学深度学习-01打卡

    线性回归 主要内容包括:1.线性回归的基本要素2.线性回归模型从零开始的实现3.线性回归模型使用pytorch的简...

  • 「动手学深度学习」线性回归

    1. 主要内容 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用PyTorch的简洁实现 2. 线...

  • 2020-08-19

    线性回归模型 一元线性回归模型 “一元”就是指单个特征。 通过预测房价的问题作为例子。 将训练集中的数据用图像的形...

  • 机器学习实践系列1——线性回归

    摘要:本文结合实际案例,介绍机器学习的线性回归模型,包括一元线性回归和多元线性回归,以及模型的评估。案例展示用Py...

  • 动手学深度学习-Task01

    任务名称 线性回归;Softmax与分类模型、多层感知机 学习心得 1、对pytorch神经网络的基本搭建进行了复...

网友评论

      本文标题:基于pytorch搭建一元线性回归模型

      本文链接:https://www.haomeiwen.com/subject/jmsiiktx.html