Keras.js представляет собой JavaScript-реализацию высокоуровневого
API Keras, позволяя загружать и запускать модели, обученные в Python
Keras, непосредственно в браузере или Node.js. Одним из ключевых
аспектов работы с нейронными сетями является понимание их структуры и
параметров. Метод model.summary() служит именно для этой
цели: он выводит подробное описание архитектуры модели, включая слои,
форму входов и выходов, количество параметров и тип соединений.
model.summary()Метод summary() принадлежит объекту модели
(Sequential или Model) и выполняет следующие
функции:
Синтаксис в Keras.js практически идентичен Python Keras:
const model = new KerasJS.Model({ filepath: 'model.json' });
await model.ready();
model.summary();
Вывод summary() можно разделить на несколько ключевых
частей:
Идентификатор слоя и его тип
dense_1, conv2d_1.Dense, Conv2D, Dropout,
Activation и др.Форма входных и выходных данных
Output Shape показывает размерность тензора
после обработки данным слоем.(null, 128) означает, что на вход слоя
поступают батчи переменной длины (null обозначает размер
батча), а выход имеет 128 признаков.Количество параметров
Param # отражает количество обучаемых
и необучаемых весов.input_units * output_units + output_units (включая
смещения).Итого
const model = new KerasJS.Model({
filepath: 'model.json'
});
await model.ready();
model.summary();
Ожидаемый вывод может быть примерно таким:
Layer (type) Output Shape Param #
========================================================
dense_1 (Dense) (null, 64) 640
activation_1 (Activation) (null, 64) 0
dense_2 (Dense) (null, 10) 650
========================================================
Total params: 1,290
Trainable params: 1,290
Non-trainable params: 0
В этом примере видна последовательность слоев: два полносвязных слоя с активациями, а также количество параметров для каждого.
Функциональная API в Keras.js позволяет создавать сложные архитектуры
с ветвлениями, объединениями и
несколькими входами/выходами. Метод
summary() в таких случаях:
Пример с ветвлением:
Layer (type) Output Shape Param #
========================================================
input_1 (InputLayer) (null, 32) 0
dense_1 (Dense) (null, 64) 2112
dense_2 (Dense) (null, 64) 4160
concatenate_1 (Concatenate)(null, 128) 0
dense_3 (Dense) (null, 10) 1290
========================================================
Total params: 7,562
Trainable params: 7,562
Non-trainable params: 0
Здесь видно, как объединяются параллельные слои с помощью
Concatenate.
Вывод summary() важен для:
summary().В Keras.js summary() может принимать небольшие
конфигурации вывода, например:
lineLength — ширина строки для вывода таблицы.positions — массив позиций для выравнивания
столбцов.Пример:
model.summary({ lineLength: 100, positions: [0.3, 0.6, 1.0] });
Это полезно для улучшения читаемости в интерфейсах с ограниченной шириной.
model.ready() перед
summary(), чтобы убедиться, что модель загружена и готова к
использованию.console.table() для
более наглядного представления параметров.Метод model.summary() является основным инструментом для
анализа структуры моделей в Keras.js и обеспечивает полный контроль над
архитектурой и параметрами сети, что особенно важно при работе с
веб-приложениями, где ресурсы ограничены.