在tf1.0中,对卷积层重新进行了封装,比原来版本的卷积层有了很大的简化。
一、旧版本(1.0以下)的卷积函数:tf.nn.conv2d
conv2d(
input,
filter,
strides,
padding,
use_cudnn_on_gpu=None,
data_format=None,
name=None
)
该函数定义在tensorflow/python/ops/gen_nn_ops.py。
参数:
- input: 一个4维Tensor(N,H,W,C). 类型必须是以下几种类型之一: half, float32, float64.
- filter: 卷积核. 类型和input必须相同,4维tensor, [filter_height, filter_width, in_channels, out_channels],如[5,5,3,32]
- strides: 在input上切片采样时,每个方向上的滑窗步长,必须和format指定的维度同阶,如[1, 2, 2, 1]
- padding: 指定边缘填充类型: “SAME”, “VALID”. SAME表示卷积后图片保持不变,VALID则会缩小。
- use_cudnn_on_gpu: 可选项,bool型。表示是否在GPU上用cudnn进行加速,默认为True.
- data_format: 可选项,指定输入数据的格式: “NHWC”或 “NCHW”, 默认为”NHWC”。
NHWC格式指[batch, in_height, in_width, in_channels]
NCHW格式指[batch, in_channels, in_height, in_width] - name: 操作名,可选.
conv1=tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')