【问题标题】:Keras EarlyStopping is not recognizedKeras EarlyStopping 无法识别
【发布时间】:2019-06-20 13:59:52
【问题描述】:

我在我的 U-net 模型中使用 Early Stopping,但它会引发错误

File "main.py", line 18, in <module>
    earlystopper = EarlyStopping(monitor='val_loss', min_delta=0, patience=15, verbose=1, mode='auto', baseline=None, restore_best_weights=False)
NameError: name 'EarlyStopping' is not defined

不过 Keras 回调函数运行良好

我不明白问题出在哪里? 任何帮助都会得到承认。

from model import *
from data import *

data_gen_args = dict(rotation_range=0.2,
                width_shift_range=0.05,
                height_shift_range=0.05,
                shear_range=0.05,
                zoom_range=0.05,
                horizontal_flip=True,
                fill_mode='nearest')
myGene = trainGenerator(2,'data/membrane/train','image','label',data_gen_args,save_to_dir = None)

model = unet()
model_checkpoint = ModelCheckpoint('unet_membrane.hdf5', monitor='loss',verbose=1, save_best_only=True)
earlystopper = EarlyStopping(monitor='val_loss', min_delta=0, patience=15, verbose=1, mode='auto', baseline=None, restore_best_weights=False)
model.fit_generator(myGene,steps_per_epoch=300,epochs=200,callbacks=[model_checkpoint, earlystopper])

testGene = testGenerator("data/membrane/test")
results = model.predict_generator(testGene,86,verbose=1)
saveResult("data/membrane/test",results)

【问题讨论】:

  • 你确定你导入正确吗? from keras.callbacks import EarlyStoppingColab link

标签: python-3.x tensorflow keras


【解决方案1】:

您必须在使用它们之前导入类:

from keras.callbacks import ModelCheckpoint, EarlyStopping

由于您使用的是from something import *,因此来自这些模块的导入可能会泄漏到当前模块中,因此对于某些类可能会出错,但对于其他类则不会。

作为一种好的做法,始终导入同一个文件。

【讨论】:

  • 谢谢我错过了导入 EarlyStopping
  • @user5520049 不,请不要发送垃圾邮件来宣传您的问题。
  • 所以你可以说不..没问题
猜你喜欢
  • 2018-07-09
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 2021-06-27
相关资源
最近更新 更多