![神经网络设计与实现](https://wfqqreader-1252317822.image.myqcloud.com/cover/765/38894765/b_38894765.jpg)
上QQ阅读APP看书,第一时间看更新
2.4.1 FFNN的Keras实现
为了在Keras中实现我们的网络,我们将再次使用Sequential模型,但是因为这次需要进行二分类预测,所以需要一个输入神经元、三个隐藏单元以及一个输出单元。
1)导入创建网络所需的部分:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-i.jpg?sign=1739261318-KKKPP1TISsFfZ9RQEZx7ajhjlNqEkhWY-0-83cbc47579d590d5c54851b2edd8240d)
2)现在,我们需要定义网络的第一个隐藏层。为此,只需指定隐藏层的输入即可(在XOR情况下为两个)。我们还可以指定隐藏层中神经元的数量,如下所示:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-2-i.jpg?sign=1739261318-VmZAGMC25wb6NbtoeEWf9lTnzhk89YWG-0-5a7473ea3aca24dffe1eb483d6f8e094)
3)选择使用tanh作为激活函数:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-3-i.jpg?sign=1739261318-C7Gw1crCuLa9aA21Bi8gTOHP7PxhESxi-0-d4d341de1f07f9cc55e680e958f12579)
4)然后,我们添加具有一个神经元的另一个全连接层,该层的激活函数为sigmoid,以此为我们提供输出:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-4-i.jpg?sign=1739261318-bpMZvJEn32EKhtaQtQRp2jL0gkop4EgC-0-af1700a1b9aab86df8af8295971c87f3)
5)再次使用SGD作为优化方法来训练我们的神经网络:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-5-i.jpg?sign=1739261318-oxeySqIaG9UMfrmE7gMj9PeZy6eyxgQ3-0-4d6b97114e8557aae76bdced503bcf88)
6)然后,编译神经网络,指定使用MSE作为损失函数:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-6-i.jpg?sign=1739261318-gUyuXqRAzvqsk5lUeCUivyRfK1atvoB5-0-9180d71f7effd0d1375ef602d6aedb68)
7)作为最后一步,我们训练网络,但是这次我们不在乎批次大小,运行2个epoch:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-7-i.jpg?sign=1739261318-elYh3KqLG0QLU3x7gXKo4UY5x28Nciaf-0-24b60e621a7692caf051e1dff6159b4e)
8)像往常一样,我们在测试集对MSE进行测量:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-8-i.jpg?sign=1739261318-Jz0cdErGgG8uk05jYbcxXxeO9dmvMWj0-0-02dbea5b77930adb441d2dc70bf7c3f9)