【问题标题】:Operations in Convolution layer in TensorflowTensorflow中卷积层的操作
【发布时间】:2017-10-21 05:20:54
【问题描述】:

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

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

提前致谢,

【问题讨论】:

    标签: tensorflow tensorboard tensorflow-serving tensor


    【解决方案1】:

    我建议你开始阅读官方教程,然后再看一些拿过官方教程的人的代码,并通过删除cmets和解释稍微modified它。

    您的[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的标准块。每个定义都有大量的信息。

    【讨论】:

    • @萨尔瓦多·达利:感谢您的回答。按照我的理解,size_out就是out_channels,是每个卷积层的filter个数,所以看我们的选择吧?
    • @ChuongNguyen 是的。你可以放任何东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 2018-02-11
    • 2016-12-23
    • 2018-06-20
    • 1970-01-01
    相关资源
    最近更新 更多