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

Keras和Tensorflow:unbundlocalerror:赋值前引用的局部变量“self”

  •  3
  • lpt  · 技术社区  · 6 年前

    我正在学习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
    

    这可能是因为Python3.7吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   from keras import michael    6 年前

    是的,我不得不卸载并重新安装Python3.6。Python3.7似乎引入了意外行为。谢天谢地,我的问题现在已经解决了。

        2
  •  0
  •   MikeSchem    6 年前

    我也有同样的问题。问题似乎出在Python3.7上。我没有卸载3.7和安装3.6,而是下载了anaconda,为3.6创建了一个虚拟环境以及所有其他依赖项。