nis*_*eri 5 keras recurrent-neural-network encoder-decoder
我正在尝试使用双向 GRU 在 Keras 中实现编码器-解码器类型网络。
下面的代码似乎可以工作
src_input = Input(shape=(5,))
ref_input = Input(shape=(5,))
src_embedding = Embedding(output_dim=300, input_dim=vocab_size)(src_input)
ref_embedding = Embedding(output_dim=300, input_dim=vocab_size)(ref_input)
encoder = Bidirectional(
GRU(2, return_sequences=True, return_state=True)
)(src_embedding)
decoder = GRU(2, return_sequences=True)(ref_embedding, initial_state=encoder[1])
Run Code Online (Sandbox Code Playgroud)
但是,当我将解码更改为使用Bidirectional
包装器时,它会停止显示encoder
并src_input
在model.summary()
. 新的解码器如下所示:
decoder = Bidirectional(
GRU(2, return_sequences=True)
)(ref_embedding, initial_state=encoder[1:])
Run Code Online (Sandbox Code Playgroud)
model.summary()
双向解码器的输出。
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_2 (InputLayer) (None, 5) 0
_________________________________________________________________
embedding_2 (Embedding) (None, 5, 300) 6610500
_________________________________________________________________
bidirectional_2 (Bidirection (None, 5, 4) 3636
=================================================================
Total params: 6,614,136
Trainable params: 6,614,136
Non-trainable params: 0
_________________________________________________________________
Run Code Online (Sandbox Code Playgroud)
问题:当我传入解码器时,我是否遗漏了一些initial_state
东西Bidirectional
?我怎样才能解决这个问题?还有其他方法可以使这项工作有效吗?
归档时间: |
|
查看次数: |
3898 次 |
最近记录: |