1.卷积层
Tensorflow对卷积神经网络有着很好的支持,下面的程序实现了一个卷积层的前向传播。
1 | import tensorflow as tf |
注:
1.tf.nn.conv2d
提供了一个简单方便的函数来实现卷积层前向传播的算法。该函数第一个输入为当前层的节点矩阵,注意该矩阵为一个四维矩阵,后面三个维度对应一个节点矩阵,第一维输入一个batch。如input[0,:,:,:]指输入第一张图片,input[1,:,:,:]指输入第二张图片。该函数提供的第二个参数是卷积层的权重,第三个为不同维度上的步长,虽然第三个参数提供的一个长度为4的数组,但是第一维和第四维一定为1,因为卷积层的步数只对矩阵的长宽有效。最后一个参数为填充(padding)的方法,一共有’SAME’和’VALID’两种选择,其中SAME是指添加全0填充,VAILID表示不添加。
2.tf.nn.bias_add
提供一个方便的函数给每个节点加上一个偏置项。注意这里不能直接使用方法,因为矩阵上不同位置的节点都需要加上同样的偏置项。
2.池化层
1 | pool = tf.nn.max_pool(actived_conv,ksize=[1,3,3,1],strides=[1,2,2,1],padding='SAME') |