【发布时间】:2018-10-28 16:37:04
【问题描述】:
在我使用的实现中,lstm 的初始化方式如下:
l_lstm = Bidirectional(LSTM(64, return_sequences=True))(embedded_sequences)
我不太明白,这可能是因为缺乏 Python 经验:符号 l_lstm= Bidirectional(LSTM(...))(embedded_sequences)。
我不明白我将embedded_sequences 传递给什么?因为它不是LSTM() 的参数,但似乎也不是Bidirectional() 的参数,因为它是单独存在的。
这是双向的文档:
def __init__(self, layer, merge_mode='concat', weights=None, **kwargs):
if merge_mode not in ['sum', 'mul', 'ave', 'concat', None]:
raise ValueError('Invalid merge mode. '
'Merge mode should be one of '
'{"sum", "mul", "ave", "concat", None}')
self.forward_layer = copy.copy(layer)
config = layer.get_config()
config['go_backwards'] = not config['go_backwards']
self.backward_layer = layer.__class__.from_config(config)
self.forward_layer.name = 'forward_' + self.forward_layer.name
self.backward_layer.name = 'backward_' + self.backward_layer.name
self.merge_mode = merge_mode
if weights:
nw = len(weights)
self.forward_layer.initial_weights = weights[:nw // 2]
self.backward_layer.initial_weights = weights[nw // 2:]
self.stateful = layer.stateful
self.return_sequences = layer.return_sequences
self.return_state = layer.return_state
self.supports_masking = True
self._trainable = True
super(Bidirectional, self).__init__(layer, **kwargs)
self.input_spec = layer.input_spec
self._num_constants = None
【问题讨论】:
标签: python keras lstm embedding