2017-10-29 40 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()