Как записать вывод потери Keras в файл

Когда вы запускаете модель нейронной сети Keras, вы можете увидеть что-то вроде этого в консоли:

Epoch 1/3 6/1000 [..............................] - ETA: 7994s - loss: 5111.7661 

С течением времени потери, надеюсь, улучшаются. Я хочу записывать эти потери в файл со временем, чтобы я мог учиться у них. Я пытался:

 logging.basicConfig(filename='example.log', filemode='w', level=logging.DEBUG) 

но это не сработает. Я не уверен, какой уровень ведения журнала мне нужен в этой ситуации.

Я также попытался использовать обратный вызов, например, в:

 def generate_train_batch(): while 1: for i in xrange(0,dset_X.shape[0],3): yield dset_X[i:i+3,:,:,:],dset_y[i:i+3,:,:] class LossHistory(keras.callbacks.Callback): def on_train_begin(self, logs={}): self.losses = [] def on_batch_end(self, batch, logs={}): self.losses.append(logs.get('loss')) logloss=LossHistory() colorize.fit_generator(generate_train_batch(),samples_per_epoch=1000,nb_epoch=3,callbacks=['logloss']) 

но, очевидно, это не запись в файл. Независимо от метода, через обратный вызов или модуль регистрации или что-то еще, я хотел бы услышать ваши решения для регистрации потери керановой нейронной сети в файл. Благодаря!

4 Solutions collect form web for “Как записать вывод потери Keras в файл”

Существует простое решение вашей проблемы. Каждый раз, когда используется какой-либо метод fit , в результате возвращается специальный обратный вызов, называемый History Callback . Он имеет history поля, которая является словарем всех показателей, зарегистрированных после каждой эпохи. Таким образом, чтобы получить список значений функции потерь после каждой эпохи, вы можете легко сделать:

 history_callback = model.fit(params...) loss_history = history_callback.history["loss"] 

Легко сохранить такой список в файл (например, путем преобразования его в массив numpy и использование метода savetxt ).

ОБНОВИТЬ:

Пытаться:

 import numpy numpy_loss_history = numpy.array(loss_history) numpy.savetxt("loss_history.txt", numpy_loss_history, delimiter=",") 

ОБНОВЛЕНИЕ 2:

Решение проблемы записи потери после каждой партии записано в документации Keras Callbacks в параграфе « Создать обратный вызов».

Вы можете использовать обратный вызов CSVLogger .

как пример:

 from keras.callbacks import CSVLogger csv_logger = CSVLogger('log.csv', append=True, separator=';') model.fit(X_train, Y_train, callbacks=[csv_logger]) 

Посмотрите: Keras Callbacks

Старый вопрос, но здесь идет. Выход Keras history идеально соответствует вводу данных pandas DataSet.

Если вы хотите, чтобы вся история была csv в одной строке: pandas.DataFrame(model.fit(...).history).to_csv("history.csv")

ура

Вы можете перенаправить объект sys.stdout к файлу перед методом model.fit и переназначить его на стандартную консоль после метода model.fit следующим образом:

 import sys oldStdout = sys.stdout file = open('logFile', 'w') sys.stdout = file model.fit(Xtrain, Ytrain) sys.stdout = oldStdout 
  • Python, почему моя вероятностная нейронная сеть (PNN) всегда предсказывает нули?
  • Коэффициент корреляции Мэтьюза с Keras
  • Как отлаживать значения NaN в TensorFlow?
  • Скорость обучения Keras не меняется, несмотря на спад в SGD
  • Почему для этой модели Keras требуется более 6 ГБ памяти?
  • Невозможно обучить нейронную сеть решению XOR-сопоставления
  • Как восстановить исходные значения после предсказания модели в keras?
  • Когда я запускаю CNN, я получаю жалобы от Keras, которые не имеют для меня никакого смысла.
  •  
    Interesting Posts for Van-Lav

    Сохранять порядок атрибутов при изменении с помощью мини-диска

    Использование анализа Фурье для прогнозирования временных рядов

    matplotlib: при использовании append_axes, как я могу указать оси, к которым я хочу добавить подпанель?

    Selenium – Python – выпадающее меню

    Библиотека стохастического исчисления в python

    Как создать объект для модели Django с множеством полей?

    Как использовать PyObject_IsInstance с не встроенным классом в качестве второго аргумента?

    Есть ли способ «скомпилировать» код Python на Arduino (Uno)?

    Зашифрованные и безопасные контейнеры докеров

    python.h не нравится при попытке установить gevent-socketio

    Python 3: обнаружение предупреждений при многопроцессорной обработке

    Как подавить предупреждения об устаревании в Django?

    обнаруживать новые или измененные файлы с помощью python

    Как определить все мои IP-адреса, когда у меня несколько сетевых адаптеров?

    Что значит «вызывать» функцию в Python?

    Python - лучший язык программирования в мире.