为什么从tf.keras.Model继承时,用'self'定义的变量会自动赋予ListWrapper()?

时间:2018-10-05 18:34:50

标签: python tensorflow keras

我对ListWrapper()不熟悉,但是当我的班级从self继承时,它将应用于由tf.keras.Model创建的所有列表变量。 https://www.tensorflow.org/api_docs/python/tf/keras/models/Model

这很糟糕,因为在某些功能中使用IndexError时,甚至只是通过Tensorflow模型,都会引起import tensorflow as tf class my_class(tf.keras.Model): def __init__(self): super(my_class, self).__init__() self.x = [0] print(self.x) model = my_class() 。 (我正在执行急切的操作)

使用以下代码可以看到问题的一小部分再现:

ListWrapper([0])

输出:

object

将继承设置为tf.keras.Model即可解决问题,这就是我知道导致此问题的0.75的原因。

我尝试查找它,但找不到任何东西。有小费吗?谢谢!

1 个答案:

答案 0 :(得分:0)

原来这是tf.keras.Model和急切执行之间的Tensorflow中的错误。 正如评论所建议的那样,这不是“ tensorflow如何“修补”设置属性”。

这是Tensorflow上已解决问题的链接: https://github.com/tensorflow/tensorflow/issues/22853

如果您有此问题,则应在下一个Tensorflow更新中修复。 此错误是1.11.0版中的