pytorch人工神经网络基础:线性回归神经网络(nn.Module+nn.Sequential+nn.Linear+nn.init+optim.SGD)

本文介绍了如何使用PyTorch构建和训练线性回归模型。首先,通过导入必要的库,如torch和numpy,来准备数据。接着,详细解释了线性回归方程,并生成了带噪声的训练数据。然后,利用nn.Linear创建线性模型,并通过nn.Module或nn.Sequential建立网络结构。在配置模型时,初始化权重和偏置,定义均方误差损失函数和随机梯度下降优化器。最后,进行了模型训练,展示了训练过程中的损失变化。整个过程涵盖了从数据生成到模型训练的完整流程。

线性回归是人工神经网络的基础,线性回归属于有监督的学习,即根据有标签(已知结果的数据)拟合线性方程权重,然后根据拟合的方程预测未知数据。

通常步骤为:

  1. 准备数据:获取有标签的数据(有结果的数据)。
  2. 建立模型:根据线性方程设计模型。
  3. 配置模型:确定损失函数、优化方法、初始化参数。
  4. 训练模型:根据有标签的数据进行回归学习。
  5. 测试:根据训练好的(回归结果)线性方程模型计算,评估模型是否准确。

神经网络算法的

1 准备工作

导入必要的库。

import torch
from torch import nn, optim
import numpy as np
import matplotlib.pyplot as plt

pytorch的所有操作都是依据张量的,尤其是自动计算梯度的操作不能和numpy数组运算。导入troch,可以使用pytorch的张量操作。

nn模块包含

  • Module(自定义模型的父类)
  • 层:比如Linear类(线性层类)以及卷积层等很多层类。
  • 损失函数:比如MSELoss类(均方误差损失函数)以及交叉熵损失函数等很多损失函数类。
  • init模块:可以用于初始化Module的可学习参数,比如线性模型中的w和b。

optim模块包含用于训练模型的优化函数类,比如SGD(随机梯度下降)。

2 准备数据

2.1 线性方程说明

线性回归方程的形式为:

y=wx+b其中:y,w,x,b都可以是向量。即:y=w1x1+w2x2+...+wnxn+b y=wx+b 其中:y,w,x,b都可以是向量。 即:y=w_1x_1+w_2x_2+...+w_nx_n+b y=wx+by,w,x,by=w1x1+w2x2+...+wnxn+b

当x为二元向量,y为一元向量时:y=w1x1+w2x2+by=w_1x_1+w_2x_2+by=w1x1+w2x2+b

当x,y均为二元向量时,相当于基于同一组x向量,回归两个二元方程(当然y可以是多元的,相当于多个二元方程)。即:

y1=w11x1+w12x2+b1y2=w21x1+w22x2+b2 y_1=w_11x_1+w_12x_2+b_1 \\ y_2=w_21x_1+w_22x_2+b_2 y1=w

net = nn.Sequential(nn.Linear(2,2))创建了一个包含一个线性层的Sequential模型。这个线性层的输入维度是2,输出维度也是2。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [pytorch人工神经网络基础线性回归神经网络(nn.Module+nn.Sequential+nn.Linear+nn.init+optim.SGD)](https://blog.csdn.net/hustlei/article/details/123598993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [DCGAN生成艺术图片迷宫游戏图片.zip](https://download.csdn.net/download/qq_30803353/87780745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [pytroch用自定义的tensor初始化nn.sequentiallinear或者conv层的一种简单方法。](https://blog.csdn.net/york1996/article/details/84234352)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hustlei

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值