Как применить свертку над неопределенной формой в Keras или Tensorflow?

С Keras, я определил,

conv = Convolution2D(num_filters, ws, ws)(x),

где у меня форма xбыть (1, ?, 10, 1)

И я встретил проблему с

TypeError: неподдерживаемые типы операндов для*: ‘NoneType’ и ‘int’

Поскольку матрицы сверточного веса, применяемые к каждому окну двумерного изображения, разделяют параметры, то, по крайней мере, для меня корректно делать это, не зная истинного размера изображения.

1 ответ

  1. Если вы хотите обработать входные данные произвольного размера в CNN, определите первый слой следующим образом:

    Convolution2D(num_filters, ws, ws, input_shape=(nb_channels, None, None))
    

    Обратите внимание, что обучение сети с переменным размером входного сигнала занимает гораздо больше времени по сравнению с фиксированным. Смотрите мой вопрос здесь .