Keras.js представляет собой JavaScript-реализацию популярных методов глубокого обучения, позволяя запускать модели Keras прямо в браузере или в Node.js. Одним из ключевых компонентов процесса обучения нейронной сети является сбор и анализ данных об изменении показателей модели на протяжении обучения. Для этих целей используется объект History, который аккумулирует метрики и значения функции потерь на каждой эпохе.
Объект History создается автоматически при вызове
метода fit модели. Его основная задача — хранение
результатов обучения по эпохам в структурированном виде. Основные
свойства объекта:
Пример структуры объекта:
{
history: {
loss: [0.693, 0.582, 0.512],
accuracy: [0.50, 0.70, 0.78],
val_loss: [0.685, 0.590, 0.520],
val_accuracy: [0.52, 0.68, 0.75]
},
params: {
epochs: 3,
batch_size: 32,
steps: 100
},
epoch: [0, 1, 2]
}
История обучения позволяет визуализировать процесс тренировки модели и выявлять возможные проблемы, такие как переобучение или недообучение. Ключевые моменты:
Пример извлечения данных из объекта History:
const history = model.fit(xTrain, yTrain, {
epochs: 10,
batchSize: 32,
validationSplit: 0.2
});
history.then(h => {
console.log("Значения функции потерь по эпохам:", h.history.loss);
console.log("Значения функции потерь на валидации:", h.history.val_loss);
console.log("Точность на обучении:", h.history.accuracy);
});
Для полноценного анализа важно визуализировать данные объекта History. В JavaScript это обычно реализуется с использованием библиотек графиков, например, Chart.js или Plotly. Основные шаги:
const epochs = history.epoch;const loss = history.history.loss; const valLoss = history.history.val_loss;Такой подход позволяет наглядно наблюдать:
Объект History не ограничивается базовым мониторингом. Он может использоваться для:
EarlyStopping, позволяет
останавливать обучение при отсутствии улучшений по ключевой
метрике.Пример сохранения истории в JSON:
history.then(h => {
const historyJSON = JSON.stringify(h.history);
localStorage.setItem("modelHistory", historyJSON);
});
Колбэки Keras.js позволяют расширять возможности объекта History. Наиболее часто используемые сценарии:
onEpochEnd получает текущую эпоху и данные метрик, что
дублирует информацию из History и позволяет формировать собственные
отчеты.Пример интеграции колбэка с History:
model.fit(xTrain, yTrain, {
epochs: 10,
batchSize: 32,
validationSplit: 0.2,
callbacks: {
onEpochEnd: (epoch, logs) => {
console.log(`Эпоха ${epoch}: Потери = ${logs.loss}, Валидация = ${logs.val_loss}`);
}
}
});
Объект History в Keras.js является фундаментальным инструментом для контроля и анализа процесса обучения нейронной сети, предоставляя структурированные данные для визуализации, оптимизации и документирования экспериментов. Его использование позволяет превратить хаотичный процесс тренировки модели в управляемый и легко интерпретируемый поток информации.