【Pytorch教程】:关系拟合(回归)

本文是Pytorch教程的一部分,主要介绍如何使用Pytorch进行关系拟合,特别是针对一元二次函数的数据进行回归训练。通过建立数据集、构建神经网络模型、训练网络以及可视化训练过程,详细解释了神经网络如何找到数据之间的关系并建立拟合模型。
摘要由CSDN通过智能技术生成

Pytorch教程目录

Torch and Numpy
变量 (Variable)
激励函数
关系拟合(回归)
区分类型 (分类)
快速搭建法
批训练
加速神经网络训练
Optimizer优化器
卷积神经网络 CNN
卷积神经网络(RNN、LSTM)
RNN 循环神经网络 (分类)
RNN 循环神经网络 (回归)
自编码 (Autoencoder)
DQN 强化学习
生成对抗网络 (GAN)
为什么 Torch 是动态的
GPU 加速运算
过拟合 (Overfitting)
批标准化 (Batch Normalization)


神经网络是如何通过简单的形式将一群数据用一条线条来表示. 或者说, 是如何在数据当中找到他们的关系, 然后用神经网络模型来建立一个可以代表他们关系的线条.

建立数据集

我们创建一些假数据来模拟真实的情况. 比如一个一元二次函数: y = a ∗ x 2 + b y = a * x^2 + b y=ax2+b, 我们给 y 数据加上一点噪声来更加真实的展示它.

import torch
import matplotlib.pyplot as plt

x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)  # x data (tensor), shape=(100, 1)
y = x.pow(2) + 0.2*torch.rand(x.size())                 # noisy y data (tensor), shape=(100, 1)

# 画图
plt.scatter(x.data.numpy(), y.data.numpy())
plt.show()

torch.linspace

torch.unsqueeze & torch.squeeze

torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,默认是将a中所有为1的维度删掉。也可以通过dim指定位置,删掉指定位置的维数为1的维度。

torch.unsqueeze()这个函数主要是对数据维度进行扩充。需要通过dim指定位置,给指定位置加上维数为1的维度。

import torch
 
x = torch.zeros(3,2,4,1,2,1)# dimension of 3*2*4*1*2
print(x.size())             # torch.Size([3, 2, 4, 1, 2, 1])
print(x.shape)
 
y = torch.squeeze(x)        # Returns a tensor with all the dimensions of input of size 1 removed.
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch中进行曲线拟合是一种常见的神经网络应用。你可以通过搭建一个神经网络模型来实现曲线拟合的任务。该模型可以是一个多层感知机(MLP)或者一个卷积神经网络(CNN)等。 首先,你需要导入必要的库,如PyTorch和NumPy。然后,定义一个继承自nn.Module类的自定义神经网络类,该类将定义网络的结构和前向传播过程。 在你的神经网络模型中,你可以使用一维线性拟合数据作为训练数据。这些数据可以表示为y=4x+5加上噪音的形式。你可以使用torch.autograd.Variable来将数据转换为PyTorch中的变量。 接下来,你可以使用torch.nn中的模块来定义神经网络的层。例如,你可以使用nn.Linear来定义线性层。在你的模型中,你可以添加多个线性层和非线性激活函数,以逐步逼近给定的曲线。 在训练过程中,你可以使用优化算法,如随机梯度下降(SGD),来调整神经网络的参数。你可以计算模型的损失函数,如均方误差(MSE),并使用反向传播算法更新参数。 最后,你可以使用训练好的模型来进行曲线拟合。你可以输入新的x,并通过网络模型获得相应的y。 总结起来,你可以按照以下步骤来使用PyTorch进行曲线拟合: 1. 导入必要的库,如PyTorch和NumPy。 2. 定义一个继承自nn.Module的自定义神经网络类。 3. 定义训练数据,如一维线性拟合数据。 4. 在神经网络模型中添加层和非线性激活函数。 5. 定义损失函数和优化算法。 6. 使用训练数据进行模型训练。 7. 使用训练好的模型进行曲线拟合。 注意,这只是一个简单的示例。在实际应用中,你可能需要根据具体问题调整模型的结构和参数,以获得更好的拟合效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [pytorch实现线性拟合方式](https://download.csdn.net/download/weixin_38685694/13759768)[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_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [pytorch深度学习:神经网络拟合方程(回归问题)](https://blog.csdn.net/qq_37333048/article/details/110469670)[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_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值