代码之家  ›  专栏  ›  技术社区  ›  yanachen

如何展平keras中的张量?

  •  0
  • yanachen  · 技术社区  · 7 年前

    我有一个张量 words_conv_bigram_pool 形状为 (?, 1, 1, 64) ,则, ? 是批次大小。 我试图将张量展平为 (?, 64) 通过 Flatten()(words_conv_bigram_pool) ,则, 但它返回的形状是 (?,?)

    >>> Flatten()(words_conv_bigram_pool)
    WARNING:tensorflow:From /home/xuemeng.cyn/anaconda2/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py:1264: calling reduce_prod (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version.
    Instructions for updating:
    keep_dims is deprecated, use keepdims instead
    <tf.Tensor 'flatten_1/Reshape:0' shape=(?, ?) dtype=float32>
    

    发生了什么以及如何在keras中使用展平功能?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Daniel Möller    7 年前

    不要太在意“tensorflow形状”,要在意“keras形状”。这种情况很常见 ? 使用keras时的tensorflow维度。

    如果将此展平层添加到模型中,然后执行 model.summary() ,您将看到所需的形状。

    如果您不使用“keras模型”,但只想删除附加尺寸,可以尝试 tf.squeeze