Я пытаюсь внедрить модуль Pyramid Pooling в Keras Tensorflow. Вместо 2D Conv я реализую его для 3D Conv. Моя проблема, когда я пытаюсь выполнить этот код:
K.tensorflow_backend.tf.image.resize_bilinear(x, output_shape)
Tensorflow жалуется:
> ValueError: Shape must be rank 4 but is rank 5 for 'ResizeBilinear'
> (op: 'ResizeBilinear') with input shapes: [?,2,1,1,2048], [2].
Я знаю, что ResizeBilinear
ожидает 4 параметра, а не 5, но как реализовать ResizeBilinear
для "уложенных изображений", чтобы размер вывода "уложенных изображений" был установлен на то, что я хочу?
Это моя реализация:
x = AveragePooling3D(pool_size=(1, 28, 28), strides=(1, 28, 28))(input_tensor)
x = Conv3D(filters=2048, kernel_size=(1, 28, 28), strides=(1, 2, 2), padding='same')(x)
x = K.tensorflow_backend.tf.image.resize_bilinear(x, output_shape)
Форма output_shape
равна (None, 2, 56, 56, 2048)
.
Форма x
равна (None, 2, 1, 1, 2048)
.