Tensorflow 属性错误:';顺序';对象没有属性';急切地跑';
我试着用这个模型在石头、纸、剪刀画上训练。然而,它接受了1800张图片的训练,准确率只有30-40%。然后我试着用TensorBoard查看发生了什么,但是标题中出现了错误Tensorflow 属性错误:';顺序';对象没有属性';急切地跑';,tensorflow,machine-learning,keras,python-3.7,tensorboard,Tensorflow,Machine Learning,Keras,Python 3.7,Tensorboard,我试着用这个模型在石头、纸、剪刀画上训练。然而,它接受了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.cal
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'
回溯(最近一次呼叫最后一次):
文件“c:/Users/bamla/Desktop/RPS project/Testing.py”,第82行,在
model.fit(x\u序列,y\u序列,批量大小=50,历元数=3,回调=
[tensorboard])
文件“C:\Users\bamla\AppData\Local\Programs\Python\Python37\lib\site-
包装\keras\engine\training.py“,第1178行,合适
验证频率=验证频率)
文件“C:\Users\bamla\AppData\Local\Programs\Python\Python37\lib\site-
packages\keras\engine\training\u arrays.py”,第125行,在fit\u循环中
callbacks.set\u模型(callback\u模型)
文件“C:\Users\bamla\AppData\Local\Programs\Python\Python37\lib\site-
packages\keras\callbacks.py”,第68行,在set\u模型中
callback.set_model(model)
文件“C:\Users\bamla\AppData\Local\Programs\Python\Python37\lib\site-
packages\tensorflow\python\keras\callbacks.py”,第1509行,在set\u模型中
如果不是model.run_,请急切地:
AttributeError:“Sequential”对象没有“run\u急切地”属性
此外,如果您有任何关于如何提高准确性的提示,将不胜感激 问题在于:
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
不要混合使用
keras
和tf.keras
导入,它们彼此不兼容,并产生与您看到的错误相同的奇怪错误。我从tensorflow.python.keras.callbacks导入TensorBoard更改了
从keras.callbacks导入TensorBoard
,这对我很有用 对我来说,这就完成了任务:
from tensorflow.keras import datasets, layers, models
from tensorflow import keras
似乎您正在混合从
keras
和tensorflow.keras
导入的内容(最好是最后一个)
最重要的是,让所有深度学习实践者
应该将代码切换到TensorFlow 2.0和tf.keras包。
最初的keras软件包仍将接受bug修复,但正在移动
向前,你应该使用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()
可能的重复?那么在这个用例中我应该使用keras还是tf.keras?@BT这取决于您。从keras使用
。回调从导入TensorBoard