卷积层
#strides参数第一和最后一个必为1,第2,3个表示在长宽两个方向的步长
#padding可选SAME和VALID,SAME表示填充,PADDING表示不填充
conv = tf.nn.conv2d(input,weights,strides=[1,1,1,1],padding='SAME')
#使用bias_add函数而不是直接相加
conv = tf.nn.bias_add(conv,biases)
池化层
#ksize即卷积核大小,第一个和最后一个参数必为1,第2,3个表示核的长和宽
pool = tf.nn.max_pool(conv,ksize=[1,3,3,1],strides=[1,2,2,1],padding='SAME')
卷积层和池化层的选择
公式
输入层->(卷积层+ ->池化层?)+ ->全连接层+
一般来说,连续2-3个卷积层会添加一个池化层,但有时也可以使用大步长的卷积层而不使用池化层。
卷积层一般选取1*1或3*3(更常见),深度一般为32,64,128,256,512(每过一个池化层就乘2),步长一般为1或2
池化层一般为2*2,步长一般为2,一般选择最大池化