簡體   English   中英

Keras功能API多輸入LSTM

[英]Keras functional API multiple input LSTM

我正在嘗試使用Keras功能API構建兩個輸入LSTM模型。

這是我使用的代碼:

inp_1 = 100
inp_2 = 100
out_1 = 10
N_FEATURES = 1


Input_1 = Input(shape=(inp_1, N_FEATURES), name='Input_1')
LSTM_1 = LSTM(name='LSTM_1', units=128)(Input_1)
Dense_1 = Dense(name='Dense_1', units=128)(LSTM_1)
Input_2 = Input(shape=(inp_2,), name='Input_2')
Dense_2 = Dense(name='Dense_2', units=128)(Input_2)
merge_2 = concatenate([Dense_1, Dense_2])

RepeatVector_1 = RepeatVector(out_1, name='RepeatVector_1')(merge_2)
LSTM_2 = LSTM(name='LSTM_2', units=128)(RepeatVector_1)
output = TimeDistributed(Dense(1,activation='linear'))(LSTM_2)

model = Model(inputs=[Input_1, Input_2], output=    output)

model.compile()

但是,出現以下我不明白的錯誤:

斷言len(input_shape)> = 3 AssertionError

對於行:

output = TimeDistributed(Dense(1,activation='linear'))(LSTM_2)

該層已經接受長度為128的張量。這里我缺少什么?

正如文件所說

輸入應至少為3D ,索引一的維度將被視為時間維度。

TimeDistributed層將一層應用於輸入的每個時間片。 因此,您應該設置return_sequences=True以返回上層LSTM_2的完整時間序列輸出。

LSTM_2 = LSTM(name='LSTM_2', units=128,return_sequences=True)(RepeatVector_1)
# LSTM_2 output shape =(?, 10, 128)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM