Keras.js представляет собой библиотеку для выполнения моделей Keras непосредственно в браузере на JavaScript. Работа с входными данными является ключевым аспектом эффективного использования этой библиотеки, так как правильный формат данных определяет корректность предсказаний и производительность.
Keras.js поддерживает несколько типов данных для входных тензоров:
Float32Array Наиболее часто используемый формат. Представляет собой одномерный массив 32-битных чисел с плавающей точкой. Используется для передачи числовых данных в модели, особенно при работе с изображениями, аудиосигналами и другими непрерывными величинами.
TypedArray других типов В некоторых случаях
допустимо использование Int32Array или
Uint8Array, однако данные могут потребовать предварительной
нормализации или преобразования в Float32Array, поскольку
большинство моделей Keras ожидают числа с плавающей точкой.
Массивы JavaScript (Array) Массивы стандартного
типа JavaScript могут быть использованы, но их обработка менее
эффективна. Библиотека автоматически конвертирует их в
Float32Array, что может создавать дополнительную нагрузку
при больших объемах данных.
Каждое входное значение для модели Keras.js должно соответствовать форме тензора, определенной при обучении модели. Основные правила:
[n]) — подходят
для векторов признаков.[batch_size, n_features]) — стандарт для задач
классификации с фиксированным набором признаков.[batch_size, height, width, channels]) — применяются для
обработки изображений и последовательностей. В Keras.js обычно
используется порядок каналов channels_last, то есть
последний индекс соответствует числу каналов (RGB, RGBA,
аудио-каналы).Важно, чтобы форма входного массива точно совпадала с ожидаемой моделью, иначе возникнут ошибки выполнения.
Kачество предсказаний сильно зависит от правильной предобработки данных:
[0, 1] или
[-1, 1]. Например, RGB-пиксели делятся на 255.[−1, 1] или стандартное
масштабирование с вычитанием среднего и делением на стандартное
отклонение.Для запуска модели используется метод model.predict:
const inputData = new Float32Array([...]);
const output = model.predict({ input_name: inputData });
Где input_name — имя входного слоя модели. В случае
нескольких входов данные передаются объектом:
const output = model.predict({
input1: inputArray1,
input2: inputArray2
});
Результат предсказания возвращается в виде Float32Array,
размерность которого соответствует выходному тензору модели.
Keras.js поддерживает пакетную обработку данных
(batch processing). Входные массивы могут содержать
несколько экземпляров для одновременной обработки:
[n_features], необходимо добавить
дополнительное измерение [batch_size, n_features].[height, width, channels]
требуется [batch_size, height, width, channels].Пакетная обработка повышает эффективность, особенно на устройствах с GPU через WebGL, снижая накладные расходы на вызовы функций.
Распространенные проблемы при работе с входными данными:
Array без
конвертации в Float32Array).Keras.js предоставляет методы для проверки форм и типов данных перед
вызовом predict, что позволяет выявить ошибки на раннем
этапе.
Float32Array для числовых
данных.Формат и структура входных данных в Keras.js определяют правильность и точность работы модели, поэтому строгая проверка этих аспектов является обязательной при разработке приложений на JavaScript с использованием нейронных сетей.