tensorflow ValueError:scan / while / Merge_1:0

时间:2018-02-08 04:29:15

标签: python tensorflow while-loop deep-learning shape

我该如何修复此错误.. 我不知道为什么会发生这个错误..这个错误阻止了我两天

叹息..

  

ValueError:my_cost_value / scan / while / Merge_1:0的形状不是   循环不变。它以shape()进入循环,但有   一次迭代后的形状。使用提供形状不变量   tf.while_loop的test1.o参数或set_shape()   关于循环变量

下面是我的代码

shape_invariants

1 个答案:

答案 0 :(得分:0)

我没有在代码中看到一个while循环来尝试指出确切的问题,但这是核心问题。

使用tf.while_loop时,您提供了一组张量作为loop_vars。在执行while循环期间,这些张量的形状“必须不会改变很多”。在通常情况下,形状根本不会改变。如果他们这样做,很可能是一个错误的迹象 - 例如从body输出张量时,你不小心重新排序了张量。

高级用户可以在shape_invariants中明确指定他们对张量期望的loop_vars。在https://www.tensorflow.org/api_docs/python/tf/while_loop中对形状不变量进行了相当详细的讨论。