Тензор в Keras.js представляет собой многомерный массив чисел, аналогичный массивам в NumPy или TensorFlow.js. Основной характеристикой тензора является его форма (shape), которая определяет размеры каждого измерения массива.
Rank тензора — это количество измерений (ось) в тензоре. Например:
5[1, 2, 3][[1, 2], [3, 4]](batch_size, height, width)Rank тензора всегда целое число ≥ 0 и напрямую связан с длиной массива, который описывает форму:
rank = shape.length
Форма тензора — это массив целых чисел, где каждый элемент указывает количество элементов в соответствующем измерении. Примеры:
shape = [], rank = 0shape = [10], rank = 1shape = [3, 4], rank = 2shape = [5, 32, 32], rank =
3Каждое число в форме тензора может быть изменено операциями, такими
как reshape или expandDims, что позволяет
динамически адаптировать данные под нужды модели.
Keras.js работает на основе загруженной модели Keras и использует структуры данных, совместимые с JavaScript. Основные операции с формой тензора включают:
const shape = tensor.shape;
const rank = tensor.rank;
const reshapedTensor = tensor.reshape([batchSize, height * width * channels]);
const expandedTensor = tensor.expandDims(0); // Добавляет измерение в начало
const squeezedTensor = tensor.squeeze(); // Убирает все размерности 1
(batch, height, width, channels), а для текстовых
последовательностей rank 3
(batch, timesteps, features).// Создание тензора из массива
const tensor = new KerasJS.Tensor([1, 2, 3, 4], [2, 2]); // 2x2
console.log(tensor.shape); // [2, 2]
console.log(tensor.rank); // 2
// Reshape тензора
const reshaped = tensor.reshape([4, 1]);
console.log(reshaped.shape); // [4, 1]
// Добавление измерения
const expanded = tensor.expandDims(0);
console.log(expanded.shape); // [1, 2, 2]
// Удаление размерности
const squeezed = expanded.squeeze();
console.log(squeezed.shape); // [2, 2]
null в форме, что позволяет модели
принимать переменное количество входов.reshape возвращают новый тензор без изменения
исходного.Форма и rank тензора являются фундаментальными характеристиками данных в Keras.js. Их понимание необходимо для корректного построения, загрузки и инференса моделей в JavaScript. Эти параметры напрямую влияют на архитектуру модели, совместимость данных и производительность вычислений.