Полносвязный слой в TensorFlow
Полносвязный слой считает новый
ряд чисел из каждой строки входа:
каждый вход участвует в каждом
выходе. В Keras его задают классом
Dense. При создании указывают,
сколько чисел должно быть на выходе.
Вход для класса Dense подают
таблицей: одна строка - одна партия,
столбцы - признаки. Создадим слой
на два выхода, передадим ряд из
трёх чисел одной строкой и выведем
ответ:
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
row = tf.constant([[1.0, 2.0, 3.0]])
layer = tf.keras.layers.Dense(2)
out = layer(row)
print(out)
Форма результата показывает число строк партии и длину выходного ряда. Сравним форму входа и форму ответа:
import tensorflow as tf
row = tf.constant([[1.0, 2.0, 3.0]])
layer = tf.keras.layers.Dense(2)
out = layer(row)
print(row.shape)
print(out.shape)
Число строк не меняется: для одной строки на входе остаётся одна строка на выходе. Меняется только длина ряда по последней оси:
import tensorflow as tf
row = tf.constant([[1.0, 2.0, 3.0]])
layer = tf.keras.layers.Dense(4)
out = layer(row)
print(out.shape)
Соберите таблицу из одной строки
[0.5, 1.0, -1.0]. Пропустите
её через блок на три выходных числа
и выведите результат.
Задайте таблицу с одной строкой из четырёх единиц. Получите из неё ряд из двух значений и выведите форму ответа.
Создайте таблицу из строк
[1, 0] и [0, 1].
Пропустите её через блок на одно
выходное число в каждой строке
и выведите форму результата.