用张量流实现CNN

时间:2016-09-19 15:16:21

标签: python neural-network tensorflow convolution conv-neural-network

我是卷积神经网络和Tensorflow的新手,我需要用更多参数实现转换层:

转化率。 layer1:filter = 11,channel = 64,stride = 4,Relu。

API如下:

tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)

我明白,大步是什么,在我的情况下它应该是[1,4,4,1]。但我不明白,我应该如何传递过滤器参数和填充。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

首先,您需要创建一个过滤变量:

W = tf.Variable(tf.truncated_normal(shape = [11, 11, 3, 64], stddev = 0.1), tf.float32)

形状参数的前两个字段代表过滤器大小,第三个是输入通道数(我猜您的图像有3个通道),第四个是输出通道数。

现在卷积层的输出可以按如下方式计算:

conv1 = tf.nn.conv2d(input, W, strides = [1, 4, 4, 1], padding = 'SAME'),其中padding = 'SAME'代表零填充,因此图像大小保持不变,输入的大小应为[batch,size1,size2,3]。

ReLU应用非常简单:

conv1 = tf.nn.relu(conv1)