"Function" (神经网络编码器)
NetEncoder[{"Function",f,{d1,d2,…,dn}]
表示一个编码器,使用自定义函数 f 编码一个输入,产生维数为 d1×d2×…×dn的输出张量.
更多信息
- NetEncoder[{"Function",…}] 通常用于定义神经网络的自定义预处理.
- NetEncoder[…][input] 把编码器应用于一个输入,并产生一个输出.
- NetEncoder[…][{input1,input2,…}] 把编码器应用于一个输入列表,并产生一个输出列表.
- 编码器 inputi 的输入是使得 f[inputi] 产生维度为 d1×d2×…×dn 数组的任何类型. 数组可以是一个 NumericArray 表达式或一个多维数字列表.
- 在构建网络时,可通过指定 "port"->NetEncoder[…] 将编码器附加到网络的输入端口上.
- 支持以下参数:
-
"Pattern" None 函数输入期待的模式 "Batched" False 函数是否应该提供批输入 SaveDefinitions True 是否应自动保存与编码器运算相关的当前定义 Initialization None 首次应用编码器时要计算的表达式 ExcludedContexts Automatic 其符号不会以递归方式保存定义的上下文 IncludedContexts All 其符号以递归方式保存定义的上下文 - 参数 "Pattern"patt 指定编码器的输入应匹配模式 patt. "Pattern" None 表明不需要执行检查.
- 当参数 "Batched" True,该函数一次应用于一批示例,而不是单独应用于每个示例.
- 默认情况下,NetEncoder[{"Function",f,…}] 保存计算 f 所需的所有符号的定义,并在第一次运行编码器时恢复这些定义. 可以使用选项 SaveDefinitions、Initialization、ExcludedContexts 和 IncludedContexts 更改要保存的定义的选择.
参数
范例
打开所有单元关闭所有单元范围 (2)
参数 (3)
"Pattern" (1)
创建一个函数编码器,检查输入是否包含实数:
SaveDefinitions (1)
可能存在的问题 (1)
当参数为 "Pattern"None,输入是单个示例还是示例列表是不明确的. 因此,在提供示例列表的情况下,该函数会被额外调用: