Keras和Tensorflow:UnboundLocalError:赋值之前引用了本地变量'self'

时间:2018-08-22 10:31:44

标签: tensorflow keras

我正在关注TensorFlow和Keras的教程。

当我运行以下语法时:

from keras.models import Sequential
from keras.layers import Dense

model = Sequential()

model.add(Dense(units=64, activation='relu', input_dim=100))
model.add(Dense(units=10, activation='softmax'))

(这不是完整的stacktrace,因为StackOverflow不会让我说它只有代码) 我收到以下错误:

--------------------------------------------------------------------
UnboundLocalError                  Traceback (most recent call last)
<ipython-input-49-30ebc8793948> in <module>()
      5 from keras.layers import Dense
      6 
----> 7 model.add(Dense(units=64, activation='relu', input_dim=100))

--> 164                     layer(x)
    165                     set_inputs = True
    166                 else:


/usr/local/lib/python3.7/site-packages/keras/initializers.py in __call__(self, shape, dtype)
   self._message_listener.Modified()

UnboundLocalError: local variable 'self' referenced before assignment

这可能是因为python 3.7吗?

2 个答案:

答案 0 :(得分:2)

是的,我必须卸载并重新安装Python 3.6。 Python 3.7看起来引入了意外的行为。幸运的是,我的问题现在已经解决。

答案 1 :(得分:0)

我有同样的问题。问题似乎出在python 3.7上。我没有卸载3.7并安装3.6,而是下载了anaconda,而是为3.6和其他所有依赖关系创建了一个虚拟环境。