你如何实现可变长度的递归神经网络?
How do you implement variable-length recurrent neural networks?
什么是可变长度序列输入循环神经网络 (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
遗憾的是,没有 'variable length' 神经网络这样的东西。这是因为网络无法 'know' 将哪些权重用于未经训练的额外输入节点。
但是,您在该页面上看到 'variable length' 的原因是因为他们处理:
a b c d e
a b c d e f g h
a b c d
a b
作为
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
他们将所有 'empty' 个变量转换为 0
。这是有道理的,因为 0
不会向网络隐藏层添加任何内容,无论权重如何,如 anything*0 = 0
.
所以基本上,您可以有 'variable length' 个输入,但您必须定义某种最大尺寸;所有小于该大小的输入都应该用零填充。
另一方面,如果您要对句子进行分类,则可以使用 LSTM/GRU 网络按顺序处理输入。
什么是可变长度序列输入循环神经网络 (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
遗憾的是,没有 'variable length' 神经网络这样的东西。这是因为网络无法 'know' 将哪些权重用于未经训练的额外输入节点。
但是,您在该页面上看到 'variable length' 的原因是因为他们处理:
a b c d e
a b c d e f g h
a b c d
a b
作为
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
他们将所有 'empty' 个变量转换为 0
。这是有道理的,因为 0
不会向网络隐藏层添加任何内容,无论权重如何,如 anything*0 = 0
.
所以基本上,您可以有 'variable length' 个输入,但您必须定义某种最大尺寸;所有小于该大小的输入都应该用零填充。
另一方面,如果您要对句子进行分类,则可以使用 LSTM/GRU 网络按顺序处理输入。