1.使用TensorFlow的卷积操作,如果使用的是GPU版本,可以明显提升效率,特别是在需要处理大批量图片的情形
2.使用函数tf.nn.conv2d(input, filters, strides, padding, data_format='NHWC', dilations=None, name=None )参数的具体含义可以参考https://www.tensorflow.org/api_docs/python/tf/nn/conv2d?version=stable, 其中需要注意的是需要将输入的数据转成四维的数据[batch, height, width, channels],并且滤波器的维度也需要转化[filter_height, filter_width, in_channels, out_channels],这是在data_format='NHWC'的情况下,N-样本数, H-图片高,W-图片宽, C-图片的通道数(RGB,灰度等)。
3.padding的默认取值有"SAME"、"VAILD",表示和数据大小相同、只保留有效部分(缩小了filter.shape-1)。或者也可以这样定义[[0, 0], [pad_top, pad_bottom], [pad_left, pad_right], [0, 0]],pad_top等表示在对应位置用0填充多少行或列。
4.使用0填充会出现数据边缘有异常,尝试采用数据自身进行填充使用np.c_[ data, padding_data]增加列,np.r_[ data, padding_data]增加行,需要在前面添加只需要调换data, padding_data的位置