ValueError: Невозможно сжать dim [3], ожидаемый размер 1, получил 128 за 'Sque eze' (op: 'Squeeze') с входными формами: [?, 128,16,128] - PullRequest
0 голосов
/ 08 апреля 2019

Я построил модель CNN, выход которой идет в RNN. Выход 5-го уровня CNN имеет структуру Tensor("max_pooling2d_5/MaxPool:0", shape=(?, 128, 16, 128), dtype=float32).

В RNN я сжимаю фигуру, но я получаю ошибку:

ValueError: Невозможно сжать dim [3], ожидаемый размер 1, получен 128 за 'Squeeze'(op: 'Squeeze') с входными формами: [?, 128,16,128].

Я искал разные источники этой ошибки в Keras.Но не нашел ничего конкретного.

#Inside CNN
kernel = (kernelVals[i], kernelVals[i])
l_conv = Conv2D(featureVals[i],kernel_size=kernel, padding='same', 
               activation='relu', strides=(1,1))(pool)
l_pool = MaxPooling2D(poolVals[i])(l_conv)

self.cnnOut4d = l_pool
#Inside RNN
rnnIn3d = keras.backend.squeeze(self.cnnOut4d, axis=3) ###ERROR in this 
#line
seq = Bidirectional(LSTM(256, return_sequences=True))(rnnIn3d)
seq2 = Bidirectional(LSTM(256, return_sequences=True))(seq)

Ожидается, что выход CNN войдет в RNN и уменьшит его размерность с помощью функциональных возможностей Keras для выполнения модели

...