![](/img/trans.png)
[英]Keras functional api: Input is incompatible with the layer with conv1d
[英]How to create a functional CONV1D layer in keras?
因此,我正在嘗試建立一個CNN網絡。 我有一個熱編碼的“ scipy.sparse.coo.coo_matrix”,大小為“(109248,101)”。 我需要使用給定的數據構建一個兩層的conv1D模型,並與另一個LSTM層連接以進行進一步處理。我沒有准備構建conv1D層的任何部分。
我嘗試使用以下方式構建網絡文檔。我也嘗試了功能性方式構建網絡,但似乎我做錯了
所以我嘗試了這個:
from keras.layers import Conv1D
# input_tensor = Input(shape=(None, 101))
model = Sequential()
model.add(Conv1D(input_shape=(101, 1),
filters=16,
kernel_size=4,
padding='same'))
model.add(Conv1D(filters=16, kernel_size=4))
model.add(Flatten())
和這個
x_rest = Conv1D(input_shape=(101,1), filters=16, kernel_size=4, padding='same')
x2 = Conv1D(input_shape=(101,1), filters=16, kernel_size=4, padding='same')(x_rest)
out2 = Flatten()(x2)
他們兩個似乎都不起作用
總是會拋出錯誤,例如
層concatenate_4的調用不是符號張量。 收到的類型:。 全輸入:[,]。 該層的所有輸入應為張量。
這是我要建立的架構
Layer (type) Output Shape Param # Connected to
==================================================================================================
main_input (InputLayer) (None, 150) 0
__________________________________________________________________________________________________
rest_input (InputLayer) (None, 101, 1) 0
__________________________________________________________________________________________________
embedding_3 (Embedding) (None, 150, 300) 16873200 main_input[0][0]
__________________________________________________________________________________________________
conv1d_24 (Conv1D) (None, 99, 64) 256 rest_input[0][0]
__________________________________________________________________________________________________
lstm_3 (LSTM) (None, 150, 32) 42624 embedding_3[0][0]
__________________________________________________________________________________________________
conv1d_25 (Conv1D) (None, 97, 64) 12352 conv1d_24[0][0]
__________________________________________________________________________________________________
flatten_5 (Flatten) (None, 4800) 0 lstm_3[0][0]
__________________________________________________________________________________________________
flatten_7 (Flatten) (None, 6208) 0 conv1d_25[0][0]
__________________________________________________________________________________________________
concatenate_3 (Concatenate) (None, 11008) 0 flatten_5[0][0]
flatten_7[0][0]
__________________________________________________________________________________________________
dense_7 (Dense) (None, 1) 11009 concatenate_3[0][0]
__________________________________________________________________________________________________
dropout_3 (Dropout) (None, 1) 0 dense_7[0][0]
__________________________________________________________________________________________________
dense_8 (Dense) (None, 1) 2 dropout_3[0][0]
__________________________________________________________________________________________________
dense_9 (Dense) (None, 1) 2 dense_8[0][0]
__________________________________________________________________________________________________
main_output (Dense) (None, 1) 2 dense_9[0][0]
==================================================================================================
您的代碼的第一個版本似乎正在運行。 這是它構建的模型:
model.summary()
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv1d_3 (Conv1D) (None, 101, 16) 80
_________________________________________________________________
conv1d_4 (Conv1D) (None, 98, 16) 1040
_________________________________________________________________
flatten_1 (Flatten) (None, 1568) 0
=================================================================
Total params: 1,120
Trainable params: 1,120
Non-trainable params: 0
_________________________________________________________________
看來問題與您接下來要使用的LSTM層有關(盡管由於您未提供代碼的這一部分,所以我無法為您提供幫助)。 您可以在此處找到解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.