2017-08-02 61 views
0

我具有与可变长度的输入工作下列顺序模型:与功能API可变长度Keras埋入层

m = Sequential() 
m.add(Embedding(len(chars), 4, name="embedding")) 
m.add(Bidirectional(LSTM(16, unit_forget_bias=True, name="lstm"))) 
m.add(Dense(len(chars),name="dense")) 
m.add(Activation("softmax")) 
m.summary() 

提供了以下总结:

_________________________________________________________________ 
Layer (type)     Output Shape    Param # 
================================================================= 
embedding (Embedding)  (None, None, 4)   204  
_________________________________________________________________ 
bidirectional_2 (Bidirection (None, 32)    2688  
_________________________________________________________________ 
dense (Dense)    (None, 51)    1683  
_________________________________________________________________ 
activation_2 (Activation) (None, 51)    0   
================================================================= 
Total params: 4,575 
Trainable params: 4,575 
Non-trainable params: 0 

然而,当我尝试实施功能API中的相同模型我不知道我尝试的任何输入层的形状看起来与顺序模型不一样。这里是我的尝试之一:

charinput = Input(shape=(4,),name="input",dtype='int32') 
embedding = Embedding(len(chars), 4, name="embedding")(charinput) 
lstm = Bidirectional(LSTM(16, unit_forget_bias=True, name="lstm"))(embedding) 
dense = Dense(len(chars),name="dense")(lstm) 
output = Activation("softmax")(dense) 

这里是概要:

_________________________________________________________________ 
Layer (type)     Output Shape    Param # 
================================================================= 
input (InputLayer)   (None, 4)     0   
_________________________________________________________________ 
embedding (Embedding)  (None, 4, 4)    204  
_________________________________________________________________ 
bidirectional_1 (Bidirection (None, 32)    2688  
_________________________________________________________________ 
dense (Dense)    (None, 51)    1683  
_________________________________________________________________ 
activation_1 (Activation) (None, 51)    0   
================================================================= 
Total params: 4,575 
Trainable params: 4,575 
Non-trainable params: 0 

回答

0

尝试添加参数input_length=None到embeddinglayer。