Дополнение формы в TensorFlow
Чтобы расширить тензор по краям,
используют функцию pad.
Она дописывает новые ячейки вокруг
данных. Пара чисел на каждую ось
задаёт, сколько элементов добавить
слева и справа по этой оси.
Здесь все новые ячейки заполняются
одним числом, обычно нулём.
Создадим таблицу 2×2 и добавим
по одному слою нулей со всех
сторон. Выведем исходный тензор
и результат:
import tensorflow as tf
table = tf.constant([[1, 2], [3, 4]])
print(table)
# выведет tf.Tensor([[1 2] [3 4]], shape=(2, 2), dtype=int32)
bordered = tf.pad(table, [[1, 1], [1, 1]], constant_values=0)
print(bordered)
# выведет tf.Tensor([[0 0 0 0] [0 1 2 0] [0 3 4 0] [0 0 0 0]], shape=(4, 4), dtype=int32)
Внутренние числа остаются на месте, форма становится больше на два шага по каждой оси. То же правило работает и для одномерного ряда:
import tensorflow as tf
row = tf.constant([5, 6, 7])
bordered = tf.pad(row, [[1, 1]], constant_values=0)
print(bordered)
# выведет tf.Tensor([0 5 6 7 0], shape=(5,), dtype=int32)
Соберите таблицу [[10, 20], [30, 40]].
Добавьте вокруг неё рамку из нулей
шириной один элемент и выведите
результат.
Соберите ряд [1, 2, 3].
Добавьте по одному нулю слева
и справа и выведите результат.
Соберите таблицу [[5, 6]]
из одной строки. Добавьте по одному
нулю сверху и снизу и выведите
форму результата.