本文以《Tensorflow2.0深度学习算法实战教材》参考,代码部分全程手打。
将图1 堆叠可以得到含有多个隐藏层的全连接层,如图2所示。因为当前层的输入要与前一层的输出相匹配;所以,要保证当前层的神经元个数与前一层的输出结点数相同。【即,图二中隐藏层1有256个神经元,隐藏层2有128个神经元,则隐藏层1中每个神经元的输出节点数为12。】
下面,以图2为例,用不同的方式实现全连接层。
1、以张量的形式实现
在计算时,按照网络层的顺序,依次计算,
最后一层输出,根据实际情况,决定是否加激活函数。
在使用Tensorflow自动求导功能计算梯度时,需要将前向计算过程放置在tf.GradientTape()环境中,从而利用GradientTape对象的gradient()方法求解参数的梯度,并利用optimizers对象更新参数。
2、层方法实现
第一步,建立各个网络层,并指定各层的激活函数类型
第二步,前向计算,依次通过各层网络