神经网络的输出层有哪些_跟小白一起学NLP(一)实战!Pytorch构建神经网络

69e38a6afa60bb0d58752344715b04bb.gif

作者系北京航空航天大学人工智能方向硕士,专注于NLP方向,欢迎大家多多交流。

工欲善其事必先利其器,TensorFlow和Pytorch之争愈演愈烈,其实大可不必在框架工具选择上耗费精力,我们根据自己的喜好选择就好,毕竟只是工具而已。

今天小白就来教入门的小宝贝儿们使用Pytorch来搭建我们的第一个可以用来训练的神经网络。

如果对神经网络不太了解的小伙伴可以关注我,我会出一个系列教程的(嗯嗯,先挖坑)。

c0ffdb83f951d1712f8f6f06adb54c4e.png

首先我们要导入torch(搭建模型)、numpy(生成数据)、matplot(用于可视化)等库。

import torchimport torch.nn.functional as Ffrom torch import nnfrom torch.autograd import Variableimport matplotlib.pyplot as pltimport numpy as np

接下来我们构建一组数据用来训练我们搭建的神经网络模型。

n_data = torch.ones(100,2)x0= torch.normal(2*n_data,1)y0= torch.zeros(100)x1 = torch.normal(-2*n_data,1)y1 = torch.ones(100)x = torch.cat((x0,x1),0).type(torch.FloatTensor)y = torch.cat((y0,y1),0).type(torch.LongTensor)x,y = Variable(x),Variable(y)plt.scatter(x.data.numpy()[:,0],x.data.numpy()[:,1],c=y.data.numpy())#,s=100,lw=0,cmap="RdYlGn")

看起来很复杂的样子,大家不要被吓到,小白来给大家解释下,这段代码的核心是2、4行,也就是normal函数,以第2行为例

        x0= torch.normal(2*n_data,1)

这个函数的作用是从均值为2*n_data,标准差为1的相互独立的正态分布中取值,也就是说其实是使我们得到的数据服从正态分布,后面我们画图出来就一目了然了,大家暂时不理解也不要紧。

第11行是将生成的数据画做散点图可视化,可以看到我们生成了两块不同区域的散点图,我们的目的就是要训练一个神经网络模型,将这两个区域的点分开。

0a2d932dd7218fa9a26ce8b67180edc4.png

下面我们要开始搭建神经网络了,are u ready?

一个典型的神经网络要有输入层、隐藏层、输出层,接下来我们就来一行一行的代码搭建这个模型。

7bcaa846dc58b1efa0205f8aca7b1686.png

2-5行定义了模型的初始化函数,n_features对应输入层的神经元数量,n_hidden对应的是隐藏层的神经元数量,n_output对应的输出层的神经元数量。

第4行定义了从输入层到隐藏层的线性变换

self.hidden = torch.nn.Linear(n_features,n_hidden)#指定隐藏层有多少输入,多少输出

第5行定义了从隐藏层到输出层的线性变换

self.predict = torch.nn.Linear(n_hidden,n_output)

6-9行定义了前向传播函数,这个forward函数定义了网络各层之间是如何连接的,这里的激活函数我们使用了relu函数。

到这里我们的第一个神经网络模型就搭建完成了,接下来,我们要开始训练这个网络模型了,想想还有点小兴奋。(未完待续)

我建了一个群,大家可以一起讨论,关注后私信我,学习路上不孤单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值