2017-10-29 38 views
0

我現在使用RNN圖層對輸入文檔進行編碼,如下所示。但我不確定爲什麼RNN層無法檢測輸入序列長度?所以我認爲最後的p的形狀應該是(?, doc_maxlen, rnn_h_size)而不是(?, ?, rnn_h_size)。哪裏錯了點?RNN圖層返回kera中未知的input_length

rnn_h_size = 10 
embd_size = 100 
doc_maxlen= 10418 
doc = Input((doc_maxlen,), name='Doc_Input') 
embd_layer = Embedding(input_dim=vocab_size, output_dim=embd_size) 
embd_doc = embd_layer(doc) # (?, doc_maxlen, embd_size) 
p =GRU(rnn_h_size, return_sequences=True)(embd_doc) # (?, ?, 10), why not (?, doc_maxlen, rnn_h_size)? 

回答

0

如果您撥打model.summary(),您將看到您想要查看的尺寸。

即使在keras中支持可變長度,並且在長度維度的摘要中使用None也不會改變模型以任何方式工作的方式(如果您不打算使用更改此維度的圖層)。

實施例:

from keras.models import Model 
model = Model(doc,p) 
model.summary()