"Function" (神经网络解码器)

NetDecoder[{"Function",f}]

表示一个解码器,把 f 应用到网络的输出并获取解码结果.

更多信息

  • NetDecoder[{"Function",}] 通常用于定义神经网络的自定义后处理.
  • NetDecoder[][input] 把解码器应用到输入产生一个输出.
  • NetDecoder[][{input1,input2,}] 把解码器应用到输入列表并产生输出列表.
  • 在构建网络时,通过指定 "port"->NetDecoder[] 解码器可以附加在网络的输出端口.
  • 参数
  • 支持下列参数:
  • "Properties"{}可用属性
    SaveDefinitionsTrue是否应自动保存与编码器估算相关的当前定义
    InitializationNone首次应用编码器时要估算的表达式
    ExcludedContextsAutomatic其符号不会递归保存其定义的上下文
    IncludedContextsAll其符号将递归保存其定义的上下文
  • NetDecoder[{"Function",f,"Properties"{"prop1","prop2",}}] 可用于指定解码器支持获取任何 propi. 函数 f 必须接受属性作为第二自变量解码. 在这种情况下,默认的属性提供给 f 的是 prop1,如果没有要求的指定属性.
  • 默认情况下,NetDecoder[{"Function",f,}] 保存估算 f 所需的所有符号的定义,并在解码器的第一次估算时恢复这些定义. 可以使用选项 SaveDefinitionsInitializationExcludedContextsIncludedContexts 更改要保存的定义的选择.

范例

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

基本范例  (1)

创建一个把输入诠释为 RGB 颜色的属性:

注意,函数传递一个 NumericArray,并且 Normal 被用于将之转换为 RGBColor 可以接受的标准数组can take.

把一个 3-向量解码为 RGB 颜色:

把解码器附加到随机产生的网络:

网络的输出自动解码为颜色:

参数  (2)

"Properties"  (1)

定义具有两个可能属性 "x2" 和 "+1"的解码器:

默认情况下,解码器返回第一个属性:

计算另一个属性:

将解码器连接到网络:

计算应用于输入的网络的数个输出属性:

SaveDefinitions  (1)

默认情况下,保存评估解码器所需的定义:

清除定义:

首次应用编码器时,将恢复定义:

可以使用 SaveDefinitionsFalse 禁用此行为:

清除定义:

无法恢复定义:

可能存在的问题  (1)

许多 Wolfram 语言函数不支持 NumericArray 输入. 该问题可以通过使用 NormalNumericArray 输入转换为标准数组解决: