Tensorflow中的卷积层中的操作

时间:2017-05-21 14:04:42

标签: tensorflow tensorboard tensorflow-serving tensor

我正在阅读有关使用TF进行深度学习的卷积,源代码在Deep learning with Tensorflow。我读到了卷积层的定义:

       def conv_layer(input, size_in, size_out, name="conv"):
         with tf.name_scope(name):
           w = tf.Variable(tf.truncated_normal([5, 5, size_in, size_out], stddev=0.1), name="W")
           b = tf.Variable(tf.constant(0.1, shape=[size_out]), name="B")
           conv = tf.nn.conv2d(input, w, strides=[1, 1, 1, 1], padding="SAME")
           act = tf.nn.relu(conv + b)
           return tf.nn.max_pool(act, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding="SAME")

虽然我读到了一些相关的文件,但我仍然无法完全理解每个条目的含义

      [5, 5, size_in, size_out]    

以及以下代码的含义:

      act = tf.nn.relu(conv + b)
      return tf.nn.max_pool()

你能帮我解决这个基本问题吗?

提前致谢,

1 个答案:

答案 0 :(得分:0)

我建议你开始阅读官方教程,然后才开始阅读官方教程的代码,稍后modified删除评论和解释。

您的private static int GetNumberBetweenZeroAndTweleve(int inputNumber) { if (inputNumber < 12) return Math.Max(inputNumber, 1); return inputNumber % 12 + 1; } conv2d中传递的变量的形状,通过阅读文档

  

形状的核心张量[filter_height,filter_width,in_channels,out_channels]

in_channels是输入图像中的通道数。对于灰度图像,它为1,对于RGB为3. Out_channels是任意数字。

此代码的含义

[5, 5, size_in, size_out]

是CNN,relu和maxpooling的标准块。关于每个定义,都有大量的信息。