Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 张力板属性错误:';模型检查点&x27;对象没有属性';在列车上批量开始';_Python_Tensorflow_Keras_Tensorboard - Fatal编程技术网

Python 张力板属性错误:';模型检查点&x27;对象没有属性';在列车上批量开始';

Python 张力板属性错误:';模型检查点&x27;对象没有属性';在列车上批量开始';,python,tensorflow,keras,tensorboard,Python,Tensorflow,Keras,Tensorboard,我目前正在使用Tensorboard,使用下面的回调函数,如下所示 from keras.callbacks import ModelCheckpoint CHECKPOINT_FILE_PATH = '/{}_checkpoint.h5'.format(MODEL_NAME) checkpoint = ModelCheckpoint(CHECKPOINT_FILE_PATH, monitor='val_acc', verbose=1, save_best_only=True, mode='m

我目前正在使用Tensorboard,使用下面的回调函数,如下所示

from keras.callbacks import ModelCheckpoint

CHECKPOINT_FILE_PATH = '/{}_checkpoint.h5'.format(MODEL_NAME)
checkpoint = ModelCheckpoint(CHECKPOINT_FILE_PATH, monitor='val_acc', verbose=1, save_best_only=True, mode='max', period=1)
当我运行Keras的密集网络模型时,我得到以下错误。我的其他任何模型都没有遇到过以这种方式运行Tensorboard的问题,这使得这个错误非常奇怪。根据这一点,正式的解决方案是使用正式的Tensorboard实现;然而,这需要升级到Tensorflow 2.0,这对我来说并不理想。有人知道我为什么会在这个特定的densenet中出现以下错误,并且有人知道解决方法/修复方法吗?

AttributeError回溯(最近的调用) 最后)在() 26批次尺寸=32, 27类重量=类重量, --->28回调=回调\u列表 29 ) 三十

2帧 /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/callbacks.py 调用批处理钩子(self、mode、钩子、批处理、日志) 245 t_before_回调=time.time() 246对于self.callbacks中的回调: -->247批处理钩子=getattr(回调,钩子名称) 248批次挂钩(批次、日志) 249 self._delta_ts[hook_name].append(time.time()-t_-before_回调)

AttributeError:“ModelCheckpoint”对象没有属性 “列车上批次开始”

我正在运行的密集网络

from tensorflow.keras import layers, Sequential
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.applications.densenet import preprocess_input, DenseNet121
from keras.optimizers import SGD, Adagrad
from keras.utils.np_utils import to_categorical

IMG_SIZE = 256
NUM_CLASSES = 5
NUM_EPOCHS = 100

x_train = np.asarray(x_train)
x_test = np.asarray(x_test)

y_train = to_categorical(y_train, NUM_CLASSES)
y_test = to_categorical(y_test, NUM_CLASSES)


x_train = x_train.reshape(x_train.shape[0], IMG_SIZE, IMG_SIZE, 3)
x_test = x_test.reshape(x_test.shape[0], IMG_SIZE, IMG_SIZE, 3)

densenet = DenseNet121(
    include_top=False,
    input_shape=(IMG_SIZE, IMG_SIZE, 3)
)

model = Sequential()
model.add(densenet)
model.add(layers.GlobalAveragePooling2D())
model.add(layers.Dense(NUM_CLASSES, activation='softmax'))
model.summary()

model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

history = model.fit(x_train,
                    y_train,
                    epochs=NUM_EPOCHS,
                    validation_data=(x_test, y_test),
                    batch_size=32,
                    class_weight=class_weights_dict,
                    callbacks=callbacks_list
                   )

在您的导入中,您混合了
keras
tf.keras
,它们彼此不兼容,因为您会遇到类似这样的奇怪错误


因此,一个简单的解决方案是选择
keras
tf.keras
,并从该软件包中导入所有内容,切勿将其与其他软件包混合。

keras
tensorflow.keras


我希望这能解决问题

是的,进口混合了keras和tensorflow

尝试使用tensorflow.keras,例如:

from tensorflow.keras.callbacks import EarlyStopping
我换这条线

from keras.callbacks import EarlyStopping, ModelCheckpoint
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint
这条线

from keras.callbacks import EarlyStopping, ModelCheckpoint
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint

这正是公认的答案对NOT Dot所说的。这与一年前的三个现有答案基本相同。