深度学习PyTorch极简入门:带有激活层的全连接神经网络识别数字

职场   2024-11-18 00:00   浙江  

本文重点

前面我们学习了简单的全连接神经网络,之所以说他简单的原因是我们只是使用了全连接层的堆叠,本文中我们更近一步,我们在层与层之间我们使用激活函数,来看一下这样的神经网络是如何堆叠的。

网络模型的搭建

class ActivationNet(nn.Module) :

def __init__ (self, in_dim, n_hidden_1, n_hidden_2, out_dim) :

super(ActivationNet, self).__init__()

self.layer1= nn.Sequential( nn.Linear(in_dim,n_hidden_1), nn.ReLU(True))

self.layer2 =nn.Sequential( nn.Linear(n_hidden_1,n_hidden_2), nn.ReLU(True)) self.layer3=nn.Sequential(nn.Linear(n_hidden_2, out_dim))

def forward(self, x):

x = self.layer1(x)

x = self.layer2(x)

x = self.layer3(x)

return x

带有ReLu激活函数的三层全连接神经网络,我们可以看出上面的代码是使用了非线性的映射,也就是添加了激活函数,其中Sequential的作用就是将网络的层组合到一起,比如上面将 nn.Linear ()和nn.ReLU组合到 一起作为 self.layer。我们可以看到我们只是将layer1和layer2添加了激活函数,没有将layer3添加激活函数,这是因为我们后面使用交叉熵损失函数,它会自动使用softmax对数据进行处理,这个前面我们介绍激活函数的时候已经进行了介绍了

基于该网络模型完成手写字体识别

就网络模型不一样,其它的处理方式和前面的代码是一样的,这里关于代码不再进行解释了

每天五分钟玩转人工智能
一个人没有梦想和神经网络有什么区别?
 最新文章