Готовая свёртка в TensorFlow
Для классификации изображений удобен класс MobileNetV2: в нём свёрточные блоки уже связаны, остаётся задать размер картинки и не тянуть готовые веса из сети.
Создадим экземпляр с параметром
weights равным None
и формой входа 32 на
32 пикселей и 3
канала в порядке NHWC:
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
net = tf.keras.applications.MobileNetV2(
weights=None,
input_shape=(32, 32, 3),
)
print(net.input_shape)
# выведет (None, 32, 32, 3)
Подадим одну миниатюру из нулей
и посмотрим форму ответа на
1000 классов:
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
net = tf.keras.applications.MobileNetV2(
weights=None,
input_shape=(32, 32, 3),
)
batch = tf.constant(
[[[[0.0, 0.0, 0.0]] * 32] * 32],
dtype=tf.float32,
)
scores = net(batch)
print(scores.shape)
# выведет (1, 1000)
Соберите готовую свёрточную
сеть для картинок 24
на 24 с тремя каналами
без загрузки чужих весов.
Выведите форму её входа.
Для такой же сети с формой
(16, 16, 3) прогоните
один пакет из единичных
значений и выведите форму
ответа.
Возьмите лёгкую готовую
архитектуру с верхним
классификатором, входом
(28, 28, 3) и своими
случайными весами.
Выведите число выходных
классов по форме последнего
тензора.