Редукционные операции — это базовые функции, используемые для обработки тензоров с целью уменьшения их размерности по указанной оси с сохранением ключевой информации. Они позволяют получать суммарные, средние и экстремальные значения элементов тензора, а также индексы этих значений.
sumМетод tf.sum() выполняет суммирование элементов тензора.
Он может быть применен ко всему тензору или по указанной оси.
Синтаксис:
tf.sum(x, axis?, keepDims?)
x — исходный тензор.axis (необязательный) — ось или массив осей для
суммирования. Если не указан, суммируются все элементы.keepDims (по умолчанию false) — сохранять
ли размерность исходного тензора после операции.Пример:
const a = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
const sumAll = a.sum(); // 21
const sumAxis0 = a.sum(0); // [5, 7, 9]
const sumAxis1 = a.sum(1); // [6, 15]
Ключевой момент: использование keepDims: true позволяет
сохранить исходную размерность, что важно при последующих операциях с
тензорами.
meanМетод tf.mean() вычисляет среднее значение элементов
тензора. Работает аналогично sum, но результат делится на
количество элементов.
Синтаксис:
tf.mean(x, axis?, keepDims?)
x — исходный тензор.axis — ось или массив осей для усреднения.keepDims — сохранять размерность тензора.Пример:
const a = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
const meanAll = a.mean(); // 3.5
const meanAxis0 = a.mean(0); // [2.5, 3.5, 4.5]
const meanAxis1 = a.mean(1); // [2, 5]
Особенность: при работе с многомерными тензорами ось указывается как индекс, начиная с 0, что позволяет контролировать направление усреднения.
max, mintf.max() возвращает наибольший элемент
тензора по указанной оси, tf.min() —
наименьший.
Синтаксис:
tf.max(x, axis?, keepDims?)
tf.min(x, axis?, keepDims?)
axis — ось, по которой вычисляется экстремальное
значение.keepDims — сохранять размерность исходного
тензора.Пример:
const a = tf.tensor2d([[1, 7, 3], [4, 0, 6]]);
const maxAll = a.max(); // 7
const minAll = a.min(); // 0
const maxAxis0 = a.max(0); // [4, 7, 6]
const minAxis1 = a.min(1); // [1, 0]
Важно помнить, что для последующих операций сравнения или маскирования полезно сохранять размерность, особенно при работе с многомерными тензорами.
argMax,
argMinЭти операции возвращают индексы элементов с максимальными или минимальными значениями по заданной оси.
Синтаксис:
tf.argMax(x, axis)
tf.argMin(x, axis)
axis — ось, по которой ищется индекс. Обязательный
параметр.Пример:
const a = tf.tensor2d([[1, 7, 3], [4, 0, 6]]);
const argMaxAxis0 = a.argMax(0); // [1, 0, 1]
const argMinAxis1 = a.argMin(1); // [0, 1]
Применение индексов: позволяет быстро находить позиции ключевых элементов для дальнейшей выборки или маскирования данных.
[2, 3, 4] и выполняется sum
по оси 1, результат будет [2, 4].keepDims: true сохраняет ось с
размерностью 1, что облегчает дальнейшее применение операций, где
размерность критична.argMax и argMin всегда возвращают
индексы, поэтому их результат имеет целочисленный тип
int32.| Операция | Результат | Применение |
|---|---|---|
sum |
Сумма элементов | Суммирование значений по оси или во всем тензоре |
mean |
Среднее значение | Усреднение для нормализации данных |
max |
Максимум | Поиск экстремальных значений |
min |
Минимум | Поиск экстремальных значений |
argMax |
Индекс максимума | Выбор позиции для классификации или маски |
argMin |
Индекс минимума | Поиск позиции минимального значения |
tf.sum(a, 1).mean(),
позволяет строить цепочки редукций без промежуточного копирования
данных.Редукционные операции используются для:
argMax.Эти операции являются фундаментальными инструментами при работе с TensorFlow.js и позволяют эффективно управлять размерностью и содержимым тензоров.