FunctionLayer

FunctionLayer[f]

表示将函数 f 应用于其输入的网络层.

更多信息和选项

  • FunctionLayer 用于根据常用的 Wolfram 语言代码定义神经网络.
  • FunctionLayer[f][x] 的作用方式与 f[x]相同.
  • 函数 f 应该仅涉及关于数组生成数组或数组关联的有效运算.
  • 有效运算包括算术函数(PlusTimes,等等),初等函数(ExpSqrtSin,等等),数值函数(MinRoundRamp,等等),数组构造(TableConstantArray,等等),数组运算(DotDetTr,等等),描述统计(MeanStandardDeviation,等等)和距离及相似(EuclideanDistanceHammingDistance,等等). 也可以使用循环构造(MapNestListFoldList,等等)和列表操作函数(PartReverse,等等).
  • 函数 f 必须仅接受一个参数作为输入. 参数可以是一个数组或数组的关联.
  • 如果 f 的参数是一个唯一数组,则 f 可以由纯函数、符号或它们的组合定义. 所生成的层将具有一个称为"Input"的唯一输入端口.
  • FunctionLayer[Sin[#]&]
  • 如果 f 的参数是数组的关联,则应使用命名槽定义 f. 所生成的层将具有以插槽命名的端口.
  • FunctionLayer[#Foo+#Bar&]
  • 也可以使用语法 FunctionLayer[Apply[f]]FunctionLayer 提供一个多参数函数 f. 在这种情况下,端口会自动命名.
  • FunctionLayer[Apply[#1+#2&]]
  • f 的输出必须是一个唯一数组(对应于唯一端口),或者是数组关联(对应于多个端口).
  • FunctionLayer[<|"Foo"Sin[#],"Bar"#|>&]
  • FunctionLayer[f,"port"shape] 可以像在 NetGraph 中一样用于指定给定端口的形状、编码器或解码器.
  • NetArray 可以在函数 f 中使用,以定义可学习的参数.
  • 函数 f 在内部转换为网络,可以是一层或多个层的图. NetExtract 可用于从函数层提取层和参数.
  • NetGraph[FunctionLayer[]] 将函数层转换为 NetGraph[].
  • Information[FunctionLayer[]] 给出有关层的报告.
  • Information[FunctionLayer[],prop] 给出 FunctionLayer[]的属性值 prop. 可能的属性NetGraph 的相同.

范例

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

基本范例  (2)

定义层,计算某些数组的 StandardDeviation

该层的运算结果与符号相同:

提取原始函数:

得到相当于 StandardDeviation 的网络层:

得到相当于 StandardDeviationNetGraph

FunctionLayer 可以用于 NetChainNetGraph

Scope  (18)

Input/Output  (4)

定义一个计算函数的层,该函数接受一个输入向量,并生成一个输出向量:

提取原始函数:

提取一个等价的 NetGraph

将接受数组并返回数组关联的函数转换为网络:

该网络返回与函数相同的值:

将接受数组关联的函数转换为网络:

将网络应用于数组关联:

将接受数组列表的函数转换为网络:

将网络应用于数值列表:

将网络应用于数组列表:

原始函数给出相同的结果:

Normalization  (3)

定义 NetGraph,执行与 Normalize 相同的计算:

得到与 Standardize 等效的层:

得到与某些自定义标准化等效的 NetGraph

Distances  (1)

得到对应于不同距离的 NetGraph

Structural  (3)

获取对数组执行给定结构操作的网络层:

获取提取数组中特定位置值的网络层:

创建 FunctionLayer,在给定位置计算单位向量:

Fixed and Learnable Arrays  (1)

固定数组可以用列表指定,可学习参数的数组可以由 NetArray 指定:

列表 {0.25,0.75} 对应于冻结的具有零个LearningRateMultipliersNetArrayLayer

NetArray[{2},"Array"{0.1,0.9}]] 对应于具有一对可初始化为{0.1,0.9}的可学习值的 NetArrayLayer

Random Numbers  (5)

创建一个在两个输入数组之间随机选择的网络:

重复随机选择 10 次:

创建一个网络,为图像添加带有随机值的灰度蒙版:

将网络应用于图像:

创建一个网络,为图像添加随机颜色的蒙版:

将网络应用于图像:

创建一个网络,将随机噪声添加到图像像素的行:

将网络应用于图像:

创建一个网络,将随机噪声添加到图像像素:

将网络应用于图像:

Debugging with Echo  (1)

连接某些中间计算作为网络的输出端口:

调用网络以获取值:

不支持 EchoTiming

Possible Issues  (1)

不支持混合多个参数的函数:

必须使用已命名输入来定义具有多个输入的网络层:

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

@online{reference.wolfram_2024_functionlayer, organization={Wolfram Research}, title={FunctionLayer}, year={2020}, url={https://reference.wolfram.com/language/ref/FunctionLayer.html}, note=[Accessed: 21-November-2024 ]}