0

我正在阅读关于使用 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()

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

提前致谢,

4

1 回答 1

0

我建议你开始阅读官方教程,然后再阅读一些人的代码,这些人拿了官方教程并通过删除评论和解释对其进行了轻微修改。

[5, 5, size_in, size_out]conv2d中传递的变量的形状,通过阅读文档是

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

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

这段代码的含义

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

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

于 2017-05-21T20:33:38.843 回答