Вы писали:
"Размер вывода слоя block1_conv1
равен (1, 400, 533, 64
). Здесь 1 - количество изображений на входе, 400 - числострок, 533 числа столбцов и 64 количества каналов "Но это не правильно.Выход block1_conv1
соответствует одному измерению канала (канал первый), размеру изображения 400 * 533 и 64 фильтрам .
Ошибка возникает при попытке изменить векторVGG19
вывод изображения с 1-канальным (400 * 533 * 64 = 13644800) к вектору, который соответствует 3-канальному выходу.
Кроме того, вы должны передать 3 канала вход:
Из VGG19 код:
input_shape: необязательный кортеж формы, указывается только в том случае, если include_top
имеет значение False (в противном случае форма ввода должна быть (224, 224, 3)
(с форматом данных channels_last
) или (3, 224, 224)
(с форматом данных channels_first
)Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не меньше 32. Например, (200, 200, 3)
будет одним допустимым значением.
Таким образом, ваши входные изображения должны быть 3 каналами.Вы даже хотите подавать изображения с 1 каналом (в градациях серого) на VGG19
, если вы хотите channels first
:
X = np.repeat(X, 3 , axis=0)
или
X = np.repeat(X, 3 , axis=2)
, если channels last
без размера партии или
X = np.repeat(X, 3 , axis=3)
с размером партии .
Если вы предоставите больше информации относительно фактических размеров ваших входных матриц ваших изображенийи тип этого (оттенки серого, RGB), я могу дать вам больше помощи, когда понадобится.