autoencoder.fit(x_train, x_train,
epochs=50,
batch_size=256,
shuffle=True,
validation_data=(x_test, x_test))
Кажется, здесь ошибка:
- x_train, x_train -> x_train, y_train
- x_test, x_test -> x_test, y_test
Отличный цикл статей. Никак не могу понять, как на выходе "Сверточного автоэнкодера" получается определенный размер изображения 28,28, он же нигде не указывается. Можно ли его изменить произвольным образом? Например 20,20 или 30,30?
это размеры изображения свойственны датасету MNIST. каждая картинка имеет размерность 28x28.
изменить, конечно, можно, но для MNIST код уже не рабочим будет.
вот цитата из следующией статьи из этой серии: Изображения цифр mnist (на которых примеры в прошлой части) — это элементы 28*28=784-мерного пространства, как и вообще любое монохромное изображение 28 на 28.
Спасибо, непонятно было только для выходного слоя у "сверточного". Поскольку явно размерность не указана, как для первых двух сетей. Я так понял, что размерность остается такой же благодаря параметру padding='same'. А вообще меня для других целей интересовало, как изменить размерность у выходного слоя.
да, padding=same
все верно
Наверное, вы уже разобрались, но вдруг кому-то поможет.
Сверточный енкодер уменьшает размеры изображения до (7,7)
благодаря слоям MaxPooling2D
, каждый из которых уменьшает размер в (2,2)
раз.
Сверточный декодер разворачивает код (7,7)
до (28,28)
благодаря двум слоям UpSampling2D
, каждый из которых увеличивает размер в (2,2)
раз.
Автоэнкодеры в Keras, Часть 1: Введение