web-dev-qa-db-ja.com

Tensorboard AttributeError: 'ModelCheckpoint'オブジェクトに属性 'on_train_batch_begin'がありません

私は現在、下に示すように、この SO post で概説されている以下のコールバックを使用して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をこのように実行しても問題は発生していません。このため、このエラーは非常に奇妙です。これ Github post によると、公式の解決策は公式のTensorboard実装を使用することです。ただし、これにはTensorflow 2.0へのアップグレードが必要であり、これは私には理想的ではありません。この特定のデンスネットで次のエラーが発生する理由は誰でも知っていますが、誰かが知っている回避策/修正はありますか?

()のAttributeErrorトレースバック(最後の最新の呼び出し)26 batch_size = 32、27 class_weight = class_weights_dict、---> 28 callbacks = callbacks_list 29)30

2フレーム/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/callbacks.py in _call_batch_hook(self、mode、hook、batch、logs)245 t_before_callbacks = time.time()246コールバック用self.callbacks:-> 247 batch_hook = getattr(callback、hook_name)248 batch_hook(batch、logs)249 self._delta_ts [hook_name] .append(time.time()-t_before_callbacks)

AttributeError: 'ModelCheckpoint'オブジェクトに属性 'on_train_batch_begin'がありません

私が実行している高密度のネット

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
                   )
5
user8888

kerasまたはtensorflow.kerasからすべてのインポートを行います

これが解決することを願っています!

0
R007