博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
古月居 PyTorch入门:一起从零搭建神经网络 三、快速搭建一个简单的神经网络
阅读量:4167 次
发布时间:2019-05-26

本文共 2787 字,大约阅读时间需要 9 分钟。

三、快速搭建一个简单的神经网络

1、构建数据点集

在我们搭建神经网络之前,我们需要明确我们的数据集,明确我们的训练的目的是什么。

一些数据集:在这里插入图片描述
制造一个加入了一些噪声的y=x*x的数据点集:
在这里插入图片描述
1.1打开pycharm:
新建一个test工程:my project
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

右键my__project,如下图:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

搭建好工程我们需要去配置一下:

就是之前第一讲的setting那里了,设置完OK!
将以下代码写入test1:

import torchimport torch.nn.functional as Fimport matplotlib;matplotlib.use('TkAgg')import os;os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"import matplotlib.pyplot as pltx =torch.unsqueeze(torch.linspace(-1,1,100),dim=1)y=x.pow(2)+ 0.2*torch.rand(x.size())  # *0.2是为了减少噪声plt.scatter(x.data.numpy(),y.data.numpy())plt.show()

点击右上角播放键一样的按钮进行运行:

1、出现 Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load fail,按照提示下载链接里面的安装就好了
2、出现name ‘plt’ is not defined,代码中加入
import os
import matplotlib.pyplot as plt
ps:已经在上面的代码里改过了。
结果:
在这里插入图片描述
加入*0.2以后的结果:
在这里插入图片描述

import torchimport torch.nn.functional as Fimport matplotlib;matplotlib.use('TkAgg')import os;os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"import matplotlib.pyplot as pltx =torch.unsqueeze(torch.linspace(-1,1,100),dim=1)y=x.pow(2)+ torch.rand(x.size())    # *0.2是为了减少噪声#plt.scatter(x.data.numpy(),y.data.numpy())#plt.show()class   Net(torch.nn.Module):    def __init__(self,n_features,n_hidden,n_output):#这里的def __init__  init前后的_是各有两个的        super().__init__()        self.hidden = torch.nn.Linear(n_features,n_hidden)        self.predict = torch.nn.Linear(n_hidden,n_output)    def forward(self,x):        x = F.relu(self.hidden(x))        x = self.predict(x)        return xnet = Net(1,10,1)print(net)#打印网络信息

结果:

在这里插入图片描述

2、搭建简单的神经网络

代码:

import torchimport torch.nn.functional as Fimport matplotlib;matplotlib.use('TkAgg')import os;os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"import matplotlib.pyplot as pltx =torch.unsqueeze(torch.linspace(-1,1,100),dim=1)y=x.pow(2)+ torch.rand(x.size())    # *0.2是为了减少噪声#plt.scatter(x.data.numpy(),y.data.numpy())#plt.show()class   Net(torch.nn.Module):    def __init__(self,n_features,n_hidden,n_output):        super().__init__()        self.hidden = torch.nn.Linear(n_features,n_hidden)        self.predict = torch.nn.Linear(n_hidden,n_output)    def forward(self,x):        x = F.relu(self.hidden(x))        x = self.predict(x)        return xnet = Net(1,10,1)#print(net)#打印网络信息optimizer = torch.optim.SGD(net.parameters(),lr = 0.2)loss_func = torch.nn.MSELoss()for t in range(500):    prediction = net.forward(x)    loss = loss_func(prediction,y)    optimizer.zero_grad()    loss.backward()    optimizer.step()    if t%5 ==0:        plt.cla()        plt.scatter(x.data.numpy(), y.data.numpy())        plt.plot(x.data.numpy(),prediction.data.numpy(),'r-',lw=5)        print("loss:",float(loss.data))        plt.pause(0.1)plt.ioff()plt.show()

结果:在这里插入图片描述

3、训练数据集分析结果

我们发现,在训练结果中展示的,LOSS损失函数值通过迭代次数的增加在不断下降,根据图像展示的,我们的线条也在随着迭代次数的增加,不断逼近y = x^2。

这就是神经网络训练数据的一整个过程。
在这里插入图片描述

小白老师推荐网站:

在这里插入图片描述
附:
此笔记仅用于个人记录、学习使用。

转载地址:http://xjexi.baihongyu.com/

你可能感兴趣的文章
2019.9.43
查看>>
2019.9.44
查看>>
2019.9.45
查看>>
2019.10.3
查看>>
2019.10.4
查看>>
2019.10.5
查看>>
2019.10.6
查看>>
2019.10.7
查看>>
2019.10.8
查看>>
人智导(二十一):规划(上)
查看>>
2019.11.27
查看>>
2019.11.28
查看>>
人智导(二十二):规划(下)
查看>>
Conda 安装PIL失败
查看>>
PIL报错:TypeError: Cannot handle this data type: (1, 1, 3), <f8
查看>>
2019.11.29
查看>>
2019.11.30
查看>>
2019.11.31
查看>>
2019.11.32
查看>>
2019.11.33
查看>>