【问题标题】:ValueError: Shape of a new variable (local1/weights) must be fully defined, but instead was (?, 1000)ValueError: 必须完全定义新变量 (local1/weights) 的形状,而不是 (?, 1000)
【发布时间】:2019-04-02 19:18:13
【问题描述】:

我是 TensorFlow 的新手。卷积之后,我的层的形状是shape=(5, 5, 5, 5), dtype=float32,但是当我应用反卷积时,得到像shape=(?, 25, 25, 640)dtype=float32. 这样的形状,这意味着反卷积后批量大小没有正确显示(?符号)。对于反卷积,我使用了这个Deconvolution 函数。

错误 ValueError: 新变量 (local1/weights) 的形状必须是 完全定义,而是 (?, 1000)。

我已经尝试过example1但效果不佳

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    问题已解决,之前的转置/反卷积代码运行良好。只是我们必须做一些小的改变。我们必须在输出形状中定义批量大小。

    【讨论】:

      【解决方案2】:

      来自使用Deconvolution函数的描述

        #Now output.get_shape() is equal (?,?,?,?) which can become a problem in the 
        #next layers. This can be repaired by reshaping the tensor to its shape:
        output = tf.reshape(output, output_shape)
        #now the shape is back to (?, H, W, C) or (?, C, H, W)
      

      不应显示批量大小,因为它设计为未知。这样做是为了保留处理具有不同大小(第一维大小)的批次的能力。这样您就可以在不同大小的批次上运行模型,例如,一次训练 5 个图像并预测 20 个图像。

      并完全同意T. Kelher

      我建议改用这个function

      tf.nn.conv2d_transpose()
      

      【讨论】:

      • 您知道如何从前面的示例中获取批量大小吗?
      • 你试过result.get_shape()吗?尝试阅读此stackoverflow.com/questions/37096225/…
      • 是的,我试过了,但它显示了相同的结果。当我从占位符提供输入时,我得到了批量大小,但在我的模型中,批量大小没有显示。即使我尝试使用 tf.nn.conv2d_transpose() 但它需要输出大小和过滤器,这就是我使用此功能的原因。你有任何链接来计算反卷积/转置层的输出大小吗?
      • 无法显示输出形状,因为输入形状未知。它由输入大小确定。 (在常见情况下,因为在您的情况下,您试图将批量大小冻结为 5,但使用的反卷积功能并非为此而设计)。在常规张量流函数中,输出形状完全由前一层确定(在这种情况下 - 输入),所以如果你知道所有维度大小 - 你在层之后知道它,并且如果你的批量大小或图像大小是动态的(占位符中没有) - 您也会在该位置收到动态形状。
      • 问题已经解决,之前的转置/反卷积代码运行良好。只是我们必须做一些小的改变。我们必须在输出形状中定义批量大小。
      【解决方案3】:

      不同之处在于您发送的示例是一个张量,它得到了错误的数据。您的问题是反卷积滤波器的权重没有完全定义。权重不依赖于批量大小,并且需要具有固定大小,因此存在误差。我知道你理解了这个错误,只是想说明你遇到的问题和例子有很大的不同。

      我建议改用这个function

       tf.nn.conv2d_transpose()
      

      它的定义就像您对普通卷积层所做的那样。在TensorFlow中是默认的,不知道为什么你一开始不使用它?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-29
        • 2019-04-01
        • 2020-04-18
        • 2019-08-23
        相关资源
        最近更新 更多