Я использую Google Colab для обучения моего NN в Tensorflow (tf.keras) V.1.15.2, и после некоторых эпох, когда в stdout много текста, я получаю:
Буферизованные данные были обрезаны после достижения предела размера вывода
Я знаю, что это нормально, и обучение продолжается, но есть проблема, с которой я сталкиваюсь: я использую adam как мой оптимизатор без затухающего фактора и моего обратного вызова в моем model.fit_generator:
callbacks=[ModelCheckpoint('/some/file/somewhere/dot.whatever',
save_best_only=True,
verbose=0,
monitor=monitor),
ReduceLROnPlateau(monitor=monitor, patience=reduce_lr, verbose=1),
EarlyStopping(monitor=monitor, patience=15, verbose=1)])`
, но, как вы можете видеть, я полагаюсь на ReduceLROnPlateau , чтобы уменьшить мою скорость обучения но это не сохраняется в обратном вызове ModelCheckpoint . Поэтому, когда я загружаю свою модель, самая последняя скорость обучения, если применяется ReduceLROnPlateau, теряется, и загрузка весов моей модели или возобновление обучения, не зная, какой была моя скорость обучения, не имеет никакого смысла. Теперь я погуглил эту проблему и обнаружил: https://github.com/keras-team/keras/issues/1872 или Keras: Добавить переменные в индикатор выполнения или https://github.com/azavea/raster-vision/issues/4
Но ничего из они делают то, что я или многие другие люди, очевидно, хотят. Может ли кто-нибудь с техническим ноу-хау предоставить решение или специальный обратный вызов, который сохраняет мои логи (мои нервы!), Включая все мои потери и неточности (для обучения и проверки) и мою скорость обучения в эпоху на основе моды, даже если я использую ReduceLROnPlateau ???
ура,