Keras:变量输入序列:填充与形状无?

时间:2017-10-08 14:30:25

标签: tensorflow deep-learning keras recurrent-neural-network rnn

我在Keras中找到了两种可能的RNN RNN可变大小输入序列处理方案。 解决方案之一:

input = Input(shape=(None, num_classes))

然后我可以将任何序列大小作为训练和验证的输入。

解决方案二:

input = Input(shape=(max_seq_length, num_classes))
...
pad_sequences(input_data, maxlen=max_seq_length, padding='post')

建议采用哪种解决方案?

我认为这两者的好处。我在解决方案二中看到的是输入大小的验证。输入不能大于max_seq_size,而且我可以决定填充类型(前/后)和序列太大的时序相同。

使用解决方案进行了哪种填充和修剪? pad_sequence的默认参数?

我已经对两种解决方案的训练模型的时间进行了基准测试,而且大致是同一时间。我想,在引擎盖下它是一样的,就像max_seq_length是根据训练序列的最大长度计算的,我是对的吗?

感谢您的任何澄清!

1 个答案:

答案 0 :(得分:1)

解决方案之一根本没有填充或修剪。它按顺序采用顺序并处理它。该模型完全独立于序列长度。

在解决方案二中,最好的办法是添加0 iron图层。它将简单地跳过处理填充值。