【问题标题】:AttributeError: 'Sequential' object has no attribute 'run_eagerly'AttributeError:“顺序”对象没有属性“run_eagerly”
【发布时间】:2020-01-03 05:20:19
【问题描述】:

我正在尝试使用这个模型来训练石头、纸、剪刀图片。然而,它是在 1800 张图片上训练的,准确率只有 30-40%。然后我试图使用 TensorBoard 查看发生了什么,但出现了标题中的错误。

from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from tensorflow.python.keras.callbacks import TensorBoard

model = Sequential()
model.add(Conv2D(256, kernel_size=(4, 4),
            activation='relu',
            input_shape=(64,64,3)))
model.add(Conv2D(196, (4, 4), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(196, (4, 4), activation='relu'))
model.add(Conv2D(196, (4, 4), activation='relu'))
model.add(Dropout(0.25))

model.add(Conv2D(128, (4, 4), activation='relu'))
model.add(Conv2D(128, (4, 4), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(96, (4, 4), activation='relu'))
model.add(Conv2D(96, (4, 4), activation='relu'))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))

model.add(Dense(3, activation='softmax'))

''' here it instantiates the tensorboard '''
tensorboard = TensorBoard(log_dir="C:/Users/bamla/Desktop/RPS project/Logs")

model.compile(loss="sparse_categorical_crossentropy",
        optimizer="SGD",
        metrics=['accuracy'])

model.summary()

''' Here its fitting the model '''
model.fit(x_train, y_train, batch_size=50, epochs = 3, callbacks= 
[tensorboard])

这个输出:

Traceback (most recent call last):

File "c:/Users/bamla/Desktop/RPS project/Testing.py", line 82, in <module>
model.fit(x_train, y_train, batch_size=50, epochs = 3, callbacks= 
[tensorboard])

File "C:\Users\bamla\AppData\Local\Programs\Python\Python37\lib\site- 
packages\keras\engine\training.py", line 1178, in fit
validation_freq=validation_freq)

File "C:\Users\bamla\AppData\Local\Programs\Python\Python37\lib\site- 
 packages\keras\engine\training_arrays.py", line 125, in fit_loop
callbacks.set_model(callback_model)

 File "C:\Users\bamla\AppData\Local\Programs\Python\Python37\lib\site- 
packages\keras\callbacks.py", line 68, in set_model
callback.set_model(model)

File "C:\Users\bamla\AppData\Local\Programs\Python\Python37\lib\site- 
packages\tensorflow\python\keras\callbacks.py", line 1509, in set_model
if not model.run_eagerly:

AttributeError: 'Sequential' object has no attribute 'run_eagerly'

另外,如果您对如何提高准确性有任何提示,我们将不胜感激!

【问题讨论】:

标签: tensorflow machine-learning keras python-3.7 tensorboard


【解决方案1】:

问题出在这里:

from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from tensorflow.python.keras.callbacks import TensorBoard

不要混合使用 kerastf.keras 导入,它们彼此不兼容,并且会产生您所看到的奇怪错误。

【讨论】:

  • 那么在这个用例中我应该使用 keras 还是 tf.keras?
  • @BT 这取决于你。
  • keras.io/callbacks使用from keras.callbacks import TensorBoard
【解决方案2】:

我改了from tensorflow.python.keras.callbacks import TensorBoardfrom keras.callbacks import TensorBoard,它对我有用。

【讨论】:

    【解决方案3】:

    对我来说,这完成了工作:

    from tensorflow.keras import datasets, layers, models
    from tensorflow import keras
    

    【讨论】:

      【解决方案4】:

      您似乎正在混合来自 kerastensorflow.keras 的导入(首选最后一个)。

      https://www.pyimagesearch.com/2019/10/21/keras-vs-tf-keras-whats-the-difference-in-tensorflow-2-0/

      最重要的是,推动所有深度学习从业者 应该将他们的代码切换到 TensorFlow 2.0 和 tf.keras 包。 原始的 keras 包仍会收到错误修复,但会移动 向前,你应该使用 tf.keras。

      尝试:

      import tensorflow
      Conv2D = tensorflow.keras.layers.Conv2D
      MaxPooling2D = tensorflow.keras.layers.MaxPooling2D
      Dense = tensorflow.keras.layers.Dense
      Flatten = tensorflow.keras.layers.Flatten
      Dropout = tensorflow.keras.layers.Dropout
      TensorBoard = tensorflow.keras.callbacks.TensorBoard
      model = tensorflow.keras.Sequential()
      

      【讨论】:

        猜你喜欢
        • 2020-09-14
        • 2022-01-04
        • 2021-10-23
        • 2020-01-29
        • 2021-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多