你如何实现可变长度的递归神经网络?

时间:2017-06-20 02:39:09

标签: machine-learning tensorflow neural-network recurrent-neural-network pytorch

什么是可变长度序列输入到递归神经网络(RNN)的完整工作示例(不是片段)?

例如PyTorch据说可以实现可变长度序列作为RNN的输入,但似乎没有完整工作代码的例子。

相关: https://github.com/pytorch/pytorch/releases/tag/v0.1.10 https://discuss.pytorch.org/t/about-the-variable-length-input-in-rnn-scenario/345

1 个答案:

答案 0 :(得分:0)

遗憾的是,没有“可变长度”神经网络这样的东西。这是因为网络无法“知道”哪些权重用于未经过培训的额外输入节点。

但是,您在该页面上看到“可变长度”的原因是因为它们处理:

a b c d e
a b c d e f g h
a b c d
a b

as

a b c d e 0 0 0
a b c d e f g h
a b c d 0 0 0 0
a b 0 0 0 0 0 0

他们将所有'空'变量转换为0。这是有道理的,因为0不会添加任何内容,无论权重如何,都会将隐藏层网络化为anything*0 = 0

所以基本上,你可以有'可变长度'输入,但你必须定义某种最大尺寸;所有小于该大小的输入都应填充零。

如果您要对句子进行分类,可以使用LSTM / GRU网络按顺序处理输入。