Установка жестких ограничений Val в зависимости от того, какие модели сохранять в Keras?

, если вы пытаетесь зарегистрировать неперечислимые свойства родительского объекта ex. по умолчанию методы, определенные внутри класса в es6, устанавливаются на прототипе, но устанавливаются как неперечислимые.

Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
0
задан keineahnung2345 19 January 2019 в 10:13
поделиться

1 ответ

IIUC, вы обучили модель с точностью, равной конкретному значению, скажем, 30%. Когда вы перезагрузите и обучите эту модель, она сохранит модели с точностью ниже 30%, и вы не хотите, чтобы это произошло.

Я проверил исходный код keras и обнаружил, что ModelCheckpoint имеет атрибут с именем best, который служит эталоном.

keras - ModelCheckpoint :

if mode == 'min':
    self.monitor_op = np.less
    self.best = np.Inf
elif mode == 'max':
    self.monitor_op = np.greater
    self.best = -np.Inf
else:
    if 'acc' in self.monitor or self.monitor.startswith('fmeasure'):
        self.monitor_op = np.greater
        self.best = -np.Inf
    else:
        self.monitor_op = np.less
        self.best = np.Inf

Но его инициализатор не принимает этот параметр:

def __init__(self, filepath, monitor='val_loss', verbose=0,
             save_best_only=False, save_weights_only=False,
             mode='auto', period=1):

Так что вы можете установить его вручную после создания ModelCheckpoint объект, подобный этому:

mcp = ModelCheckpoint(create_save_path(), monitor='val_acc', verbose=2,
                            save_best_only=True, save_weights_only=False,
                            mode='auto', period=1)
mcp.best = 0.3
0
ответ дан keineahnung2345 19 January 2019 в 10:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: