шаги должны быть длиной 1, 1 или 3, но при построении модели CNN-LSTM было 2 ошибки - PullRequest
0 голосов
/ 12 июля 2020

Я получаю эту ошибку: шаги должны быть длиной 1, 1 или 3, но были 2

    model = Sequential()
    model.add(TimeDistributed(Conv2D(filters=64, kernel_size=(2,1), activation='relu',input_shape=(10,7,1),strides=1)))
    model.add(TimeDistributed(MaxPooling2D(pool_size=(2,1),strides=2)))
    model.add(TimeDistributed(Conv2D(filters=64, kernel_size=(2,1), activation='relu',strides=1)))
    model.add(TimeDistributed(MaxPooling2D(pool_size=(2,1),strides=2)))
    #model.add(Flatten())
    #model.add(TimeDistributed())
    model.add(LSTM(64, activation='tanh'))
    model.add(Dense(32, activation='sigmoid'))
    model.add(Dense(1))
    model.compile(optimizer='RMSprop', loss='mse',metrics=['accuracy'])

что мне делать, чтобы этого избежать

1 Ответ

0 голосов
/ 13 июля 2020

Если вы используете padding='same', ошибка может исчезнуть, потому что при необходимости добавляются отступы. Обычно для входного изображения с размером i, размером ядра k, отступом p и шагом s изображение на выходе из свертки имеет размер o: введите описание изображения здесь , а дробная часть должна быть целой, чтобы ошибка не появлялась. Уравнение представляет одно измерение за раз, если размер изображения (8,5) и размер ядра (2,1), то ширина вывода составляет (8-2*p-2)/s + 1 и т. Д.

...