1
我是keras的新手,我試圖對文檔進行卷積。每個文檔由形狀爲[40 * 4000]的矩陣表示(每個文檔有40個句子,每個句子有20個詞,因此文字嵌入尺寸爲200)。Keras {ValueError}:輸入0與圖層不兼容conv2d_2
我想要做的卷積超過3個字,這是我的代碼(不完全一樣,但你可以運行你的機器上的代碼):
import keras
from keras.layers import Input, Embedding, Dense, merge, Conv2D
from keras.layers.core import Reshape
tokens_input = Input(name='input', shape=(40, 20), dtype='int32')
x = Embedding(25000 + 1, 200, name="embedding")(tokens_input)
x = Reshape((40, -1),
name="reshape")(x)
cur_conv = Conv2D(20, kernel_size=(3*200, 1),
strides=(200, 1), padding='valid', activation='relu')(x)
但我收到此錯誤信息:輸入0與圖層不兼容conv2d_1:預計ndim = 4,發現ndim = 3
謝謝,我解決了這個問題,但是我讀了Conv2D的keras文檔,它說參數kernel_size指定2D卷積窗口(https://keras.io/layers/convolutional/)的**寬度和高度**,實際上,我認爲kernel_size指定**高度和寬度**,換句話說,行和列, 我對嗎? – Joey
@Joey輸入形狀中指定的寬度和高度對應於輸入數據,而不是卷積濾鏡。你可以有一個比卷積濾波器大得多的圖像。 –
也許我沒有說清楚。我的意思是Conv2D ** kernel_size **的參數,文檔說它指定了過濾器的寬度和高度**,但是我發現它指定了過濾器的高度和寬度**,換句話說,行和過濾器的列。 – Joey