‹›灵活使用递归网络
Wolfram语言提供了高级递归层,能够无缝高效地处理不同长度的输入批次,而不会牺牲性能。此外,诸如NetState对象和NetFold操作员提供对自定义高级递归层的递归评估和定义的轻松访问。
首先,演示如何创建和使用简单的递归层。定义作用于可变长度2向量序列的递归层。
在一批可变长度序列上评估层。
定义一个网络,该网络接受可变长度的字符序列,并为每个序列生成一个数字。
在一批可变长度字符串上评估层。
通过定义的递归层或网络网络链或NetGraph(网络图形)默认情况下是无状态的。它们的初始内部状态是零向量,并在每次求值后重置,因此对同一输入进行重复求值将产生相同的结果。
网络的递归层可以用NetState对象.A型NetState对象求值后保持其自身状态,因此对同一输入进行重复求值通常会产生不同的结果。这是一种保持循环层内部状态的方法,例如,可以有效地生成文本。
现在演示如何从现有的网络图形使用NetFold操作员定义乘法LSTM的核心单元。
显示完整的Wolfram语言输入
创建乘法LSTM。
在一批长度为64个矢量的可变序列上评估层。