前置知识
数据生成
我们先生成最简单的二次函数。
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之间均匀地插入100000torch.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.functional as f
class

这篇博客介绍了如何使用PyTorch构建神经网络解决回归问题,包括数据生成、批训练数据打包、神经网络的创建、损失函数与优化器的选择、训练与测试过程,并分享了作者的心得体会。
神经网络解决回归问题&spm=1001.2101.3001.5002&articleId=109291796&d=1&t=3&u=077d1b0eda9b4c6e915b4486c406c39a)
1万+

被折叠的 条评论
为什么被折叠?



