NetStateObject

NetStateObject[net]

创建一个从 net 中导出的对象,表示具有额外存储状态信息的神经网络,当网络应用于数据时会对该状态信息进行更新.

NetStateObject[net,seed]

创建一个对象,用 seed 初始化其中额外的存储状态信息.

更多信息

  • NetStateObject[][data]NetStateObject 中存储的状态信息进行更新.
  • 状态信息与循环神经网络的状态端口(如 LongShortTermMemoryLayer)相关联.
  • NetStateObject 将不会存储其状态端口的初始化是来自 NetGraph 中的其他层的层的状态.
  • 没有提供种子的情况下,循环状态的初值将由零数组组成.
  • 存储状态的当前值由 NetExtract[NetStateObject[],"States"] 给定.

范例

打开所有单元关闭所有单元

基本范例  (3)

创建一个循环网络:

创建循环网络的状态对象:

在某些数据上运行状态对象:

由于存储状态的存在,状态对象的行为在不同的计算中会发生改变,即便是同样的输入:

创建具有指定初始状态的状态对象:

创建一个分类器,预测序列的下一个元素:

在一组输入序列上训练分类器:

创建状态对象,并用它来有效地生成一个最大似然序列,从一个 1 开始:

应用  (1)

培训英文字符级语言模型. 首先,从两部小说中创建 30 万个训练实例,每个实例由 25 个字符组成:

数据以分类问题的形式给定:给定字符序列,预测下一个字符. 来看一个数据的样本:

获取文本中所有字符的列表:

定义一个网络,接受一串字符并预测下一个字符:

训练该网络. 在 CPU 上可能要花费一个小时;如果有 GPU 可用,建议将选项 TargetDevice 设为 "GPU"

给定字符序列,预测下一个字符:

给定初始文字,产生 100 个字符的文本:

从预测的概率分布中抽样可以得到更有趣的文本:

属性和关系  (3)

如果一个循环层的状态的初始值是由 NetGraph 中的连接提供的,那么这个状态将不会被 NetStateObject 储存.

创建一个使用连接来提供 BasicRecurrentLayer 状态初始值的图:

不能在 NetStateObject 中使用该图,因为其中没有要保存的状态:

可以使用 NetExtract 来获取保存状态的当前值.

先创建一个 NetStateObject

对一些数据应用对象:

提取状态的当前值:

对于循环网络,使用 NetStateObject 等同于通过 NetPort[All,"States"] 手动跟踪循环状态.

为了看到这一点,创建一个预测序列的下一个元素的分类器:

在一组输入序列上训练分类器:

创建状态对象,并用它来有效地生成一个最大似然序列,从一个 1 开始:

NetPort[All,"States"] 从训练过的网络生成序列,设置并获取循环状态,我们将得到相同的结果:

Wolfram Research (2018),NetStateObject,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NetStateObject.html.

文本

Wolfram Research (2018),NetStateObject,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NetStateObject.html.

CMS

Wolfram 语言. 2018. "NetStateObject." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/NetStateObject.html.

APA

Wolfram 语言. (2018). NetStateObject. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/NetStateObject.html 年

BibTeX

@misc{reference.wolfram_2024_netstateobject, author="Wolfram Research", title="{NetStateObject}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/NetStateObject.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_netstateobject, organization={Wolfram Research}, title={NetStateObject}, year={2018}, url={https://reference.wolfram.com/language/ref/NetStateObject.html}, note=[Accessed: 22-November-2024 ]}