我有一個關於如何在Keras中一起工作的卷積層和LSTM層的問題。關於使用卷積層的輸出作爲LSTM的輸入
假設我正在使用CNN來確定圖像的特徵映射。在特定的卷積層之後,我有一個特徵映射,例如F,其維數是(H,W,C)。現在,我想使用此特徵映射的每一行,如[1 ::],[2 ::],.....作爲跟隨的LSTM層的輸入,但重複H次。
LSTM的輸出是(H,W)張量。
有沒有辦法做到這一點在keras與默認圖層?或者我需要實現一個自定義圖層?
感謝
我想在我的模型使用Timedistributed層,但它不工作。其實,我想要實現的是link的簡化版本。
在這裏,我只想使用LSTM掃描我的Conv2D輸出的每一行並標記它的每個像素。我的代碼是像以下:
input_img = Input(shape=(256,256,1))
# encoder
x = Conv2D(filters=16, kernel_size=(5,5))(input_img)
x = MaxPooling2D((2, 2), padding='same')(x) # 128x128
x = Conv2D(filters=32, kernel_size=(3,3))(x)
encoded = MaxPooling2D((2, 2), padding='same')(x) # 64x64
# decoder
x = Conv2D(filters=32, kernel_size=(3,3))(encoded)
x = UpSampling2D((2, 2))(x)
x = Conv2D(filters=16, kernel_size=(5,5))(x)
x = UpSampling2D((2, 2))(x)
# Using LSTM to produce final outputs
decoded = TimeDistributed(LSTM(3, input_shape=(32, 16),return_sequences=True))(x)
model = Model(input_img, decoded)
但它看起來像我的模型不能收斂......
請參閱下面的標題爲「Visual question answering model」的例子:https://keras.io/getting-started/functional-api-guide/,它可能是相關的。 –