Константа newaxis
Константа newaxis применяется для добавления новой оси к тензору
при индексации. Она позволяет изменить размерность тензора,
вставив новую ось в указанную позицию. Константа не принимает
параметров и используется исключительно внутри оператора индексации
[]. Значение newaxis эквивалентно None
и часто применяется для приведения формы тензора к нужному виду,
например, при передаче данных в слой нейронной сети.
Синтаксис
tf.newaxis
Пример
Давайте создадим одномерный тензор и добавим к нему новую ось
с помощью newaxis:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
res = t[tf.newaxis]
print(res)
Результат выполнения кода:
tf.Tensor([[1 2 3 4 5]], shape=(1, 5), dtype=int32)
Пример
Давайте добавим новую ось в другую позицию, чтобы получить
форму (5, 1):
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
res = t[:, tf.newaxis]
print(res)
Результат выполнения кода:
tf.Tensor(
[[1]
[2]
[3]
[4]
[5]], shape=(5, 1), dtype=int32)
Пример
Давайте применим newaxis к двумерному тензору
и добавим ось в начало:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]])
res = t[tf.newaxis, :, :]
print(res)
Результат выполнения кода:
tf.Tensor(
[[[1 2 3]
[4 5 6]]], shape=(1, 2, 3), dtype=int32)
Пример
Давайте проверим, что newaxis эквивалентен None:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
res1 = t[tf.newaxis]
res2 = t[None]
print(tf.reduce_all(tf.equal(res1, res2)))
Результат выполнения кода:
tf.Tensor(True, shape=(), dtype=bool)