【问题标题】:Why is the conv2d layer requiring a ndim=4 input?为什么 conv2d 层需要 ndim=4 输入?
【发布时间】:2019-05-17 11:08:10
【问题描述】:

我想在我的网络中使用 2d 卷积层,我想给它图片作为输入。所以我有一批图片意味着一个 ndim=3 矩阵, 比如这样:

我输入的维度:

[10, 6, 7]

10 值是 batch size,另外两个值是图像大小。那么 conv 2d 层需要的第四维是什么?

这里是有趣的代码行:

self.state_size = [6, 7]

self.inputs_    = tf.placeholder(tf.float32, shape=[None, *self.state_size],  name="inputs_")


# Conv2D layer 1
self.conv1   = tf.layers.conv2d(inputs = self.inputs_,
                                filters = 4,
                                kernel_size = [4, 4],
                                strides = [1, 1],
                      kernel_initializer=tf.contrib.layers.xavier_initializer_conv2d())

这是我得到的错误:

Input 0 of layer conv2d_1 is incompatible with the layer: expected ndim=4, found ndim=3. Full shape received: [None, 6, 7]*

【问题讨论】:

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


    【解决方案1】:

    这里是关于卷积 2D 层的输入张量维度的简短说明。

     tensor_shape = (BATCH_SIZE, WIDTH, HEIGHT, CHANNELS).
    

    第四个维度是通道(颜色)维度。

    长答案是: 卷积 2D 层期望输入具有四个维度。 tensorflow 中有两种图像张量格式。
    1. channels_last(NHWC) - 尺寸按(BATCH_SIZE, HEIGHT, WIDTH, CHANNEL) 排序。
    2. channels_first(NCHW) - 维度排序为BATCH_SIZE, CHANNELS, HEIGHT, WIDTH)。

    批量尺寸维度

    在 tensorflow(可能在其他机器学习库中)中,一旦您定义了模型,您就有两个选项可以将数据提供给模型。第一个选项是一次提供一个数据点。第二个选项是将N 的数据点数量一次提供给您的模型。这是可能的,因为 批量大小维度

    宽度尺寸

    此尺寸指定图像的宽度。

    高度尺寸

    此尺寸指定图像的高度

    渠道维度

    RGB图像的通道维度是RGB值维度。

    编辑:

    要指定输入图像的数据格式,张量 conv2d 层接受 data_format 参数。默认为“channels_last”。你可以找到更多here。 以下代码显示了具有 channals_last 数据格式的输入

    inputs_ = tf.placeholder(tf.float32, [None, 32, 32, 3])
    
    conv1 = tf.layers.conv2d(inputs_,32, (3, 3), data_format="channals_last")  
    

    频道优先

    conv1 = tf.layers.conv2d(inputs_,32, (3, 3), data_format="channels_first")
    

    【讨论】:

    • 感谢您的回答!这意味着 tensorflow 决定只为 RGB 图像添加一个名为 channels 的维度?,我如何指定我的输入是 NHWC 还是 NCHW 格式?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2019-03-06
    • 1970-01-01
    • 2022-01-06
    • 2021-11-02
    • 1970-01-01
    • 2020-02-25
    相关资源
    最近更新 更多