РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
426 of 824 menu

Класс CSVLogger

Класс CSVLogger является колбэком Keras и сохраняет метрики обучения модели в CSV-файл после каждой эпохи. Первым параметром передается имя файла для сохранения. Вторым параметром можно передать разделитель separator, по умолчанию используется запятая. Третьим параметром append указывается, нужно ли дописывать данные в существующий файл. Если передать append=False, файл будет перезаписан.

Синтаксис

tf.keras.callbacks.CSVLogger(filename, separator=',', append=False)

Пример

Давайте обучим простую модель и сохраним историю обучения в файл 'model.keras' с расширением .csv:

import tensorflow as tf import numpy as np tf.random.set_seed(0) x = np.array([[1.0], [2.0], [3.0], [4.0], [5.0]]) y = np.array([[2.0], [4.0], [6.0], [8.0], [10.0]]) model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(1,)) ]) model.compile(optimizer='sgd', loss='mse') logger = tf.keras.callbacks.CSVLogger('training.csv') model.fit(x, y, epochs=3, verbose=0, callbacks=[logger]) print("CSV file created")

Результат выполнения кода:

"CSV file created"

Пример

Давайте сохраним историю обучения с другим разделителем и посмотрим содержимое файла:

import tensorflow as tf import numpy as np import csv tf.random.set_seed(0) x = np.array([[1.0], [2.0], [3.0], [4.0], [5.0]]) y = np.array([[2.0], [4.0], [6.0], [8.0], [10.0]]) model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(1,)) ]) model.compile(optimizer='sgd', loss='mse') logger = tf.keras.callbacks.CSVLogger( 'training_semicolon.csv', separator=';' ) model.fit(x, y, epochs=2, verbose=0, callbacks=[logger]) with open('training_semicolon.csv', 'r') as f: reader = csv.reader(f, delimiter=';') for row in reader: print(row)

Результат выполнения кода:

['epoch', 'loss'] ['0', '30.2143'] ['1', '28.9321']

Пример

Давайте допишем результаты нового обучения в существующий CSV-файл, используя параметр append=True:

import tensorflow as tf import numpy as np tf.random.set_seed(0) x = np.array([[1.0], [2.0], [3.0], [4.0], [5.0]]) y = np.array([[2.0], [4.0], [6.0], [8.0], [10.0]]) model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(1,)) ]) model.compile(optimizer='sgd', loss='mse') logger = tf.keras.callbacks.CSVLogger( 'training_append.csv', append=True ) model.fit(x, y, epochs=3, verbose=0, callbacks=[logger]) model.fit(x, y, epochs=2, verbose=0, callbacks=[logger]) print("Data appended to CSV file")

Результат выполнения кода:

"Data appended to CSV file"

Смотрите также

  • класс ModelCheckpoint,
    который сохраняет модель во время обучения
  • класс EarlyStopping,
    который останавливает обучение при отсутствии улучшений
  • класс History,
    который хранит историю обучения в памяти
  • класс TensorBoard,
    который сохраняет логи для визуализации обучения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить