首先以tensorflow中最常用的卷积神经网络为案例进行说明:
tf.nn.conv2d(
input,
filter,
strides,
padding,
use_cudnn_on_gpu=True,
data_format='NHWC',
dilations=[1, 1, 1, 1],
name=None)
首先input必须是一个四维的tensor,以28✖️28✖️1的图像为案例进行说明,首先需要转换为4维,需要加入图像样本的个数,假设为100张,变为[100,28,28,1],直观理解为100张 2828的只有一个通道的图片。
我们再来看filter,即卷积神经网络的滤波器,必须与input维度相同,[3,3,1,2],通俗理解为33的卷积核2个,只作用于1个通道,即input的最后一个参数和filter的倒数第二个参数是相同的。
第三个参数是stride,控制卷积核的移动步数,与上述两个参数相同,也是四维的,[1,1,1,1],其中第一个1和最后一个1是固定值,需要改变的是中间的两个数,即在x轴和y轴的移动步长。
第四个参数是padding,只有两个取值,'SAME'和'VALID',第一个是填充边界,第二个是当不足以移动时直接舍弃。
其他参数选择默认即可。
网友评论