Pytorch学习笔记:(一)神经网络解决回归问题

这篇博客介绍了如何使用PyTorch构建神经网络解决回归问题,包括数据生成、批训练数据打包、神经网络的创建、损失函数与优化器的选择、训练与测试过程,并分享了作者的心得体会。
摘要由CSDN通过智能技术生成

前置知识

数据生成

我们先生成最简单的二次函数。

import torch
x = torch.unsqueeze(torch.linspace(-5, 5, 100000), dim=1)
y = x.pow(2)+2*torch.rand(x.size())

test_x = torch.unsqueeze(torch.linspace(-5, 5, 1000), dim=1)
test_y = test_x.pow(2)+2*torch.rand(test_x.size())
  • torch.linspace:等差数列插值。在示例中,就是在-5~5之间均匀地插入100000
  • torch.unsqueeze:维度扩充。我们生成的数据是1维的,我们需要在生成一位才能满足需要。
  • torch.rand [ 0 , 1 ) [0,1) [0,1)随机数均匀生成。我们给数据增加一定的混乱度。如果想要生成正态分布可以使用torch.randn

如果想要看到生成的函数图像可以借助matplotlib
图像

参考代码如下

import matplotlib.pyplot as plt
import numpy as np
plt.scatter(test_x.data.numpy(),test_y.data.numpy(),s=2 * np.ones(test_x.size()))
plt.show()

批训练数据打包

import torch.utils.data as data
BATCH_SIZE = 100
train_dataset = data.TensorDataset(x, y)
train_loader = data.dataloader.DataLoader(
    dataset=torch_dataset,
    batch_size=BATCH_SIZE,
    shuffle=True,
    num_workers=1,
)
DataLoader参数解释
  • dataset:数据集,不解释。
  • batch_size:每批的数据大小
  • shuffle:是否打乱数据集
  • num_workers:使用多进程加载的进程数,0代表不使用多进程。记得如果要多进程要放在main里面不然会报错的。

建立神经网络

正常的方法

(为什么叫正常的方法因为下面有快速的方法

import torch.nn
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值