ThreadingLayer
表示一个网络层,接受几个输入数组,对相应的数组元素应用函数 f.
ThreadingLayer[f,bspec]
允许根据广播规范 bspec 调整数组形状.
更多信息和选项
- ThreadingLayer 通常用在 NetGraph 中.
- 在 ThreadingLayer[f] 中,函数 f 可以为: Plus、Subtract、Times、Divide、Power、Surd、Min、Max、Clip、ModArcTan、Erf.
- 一般情况下,f 可以是在应用于两个参数时给出 Plus、Subtract 等与数字、ElementwiseLayer 支持的 所有函数 以及使用 If、And、Or、Which、Piecewise、Equal、Greater、GreaterEqual、Less、LessEqual、Unequal 的逻辑运算的组合的任意对象.
- 函数 f 也可以含有形如 "name"[input]的表达式,其中 name 是被 ElementwiseLayer 所接受的已命名函数("ELU", "SELU", "SoftSign",等)之一 .
- 在 ThreadingLayer[f,bspec]中,较小的数组将在应用 f 匹配较大数组的尺寸之前被隐式复制. 可以为 bspec 给出以下设置:
-
None 无复制 Automatic 沿大小为 1 的轴复制(默认) n 如果需要,在 n 层插入尺寸正确的维数 -n 从尾部开始计数 {spec1,spec2,…} 为相应的输入数组使用特定的广播设置 - 选项 InputPorts 可用于指定输入端口的数量、名称或形状. 如果未指定 InputPorts,则从 NetChain 或 NetGraph 连接性推断出端口的数量及其形状.
- 除了输入端口外,ThreadingLayer 还公开了以下端口供 NetGraph 等使用:
-
"Output" 数组 - 在 NetGraph 内部,ThreadingLayer 可以使用形如 {src1,src2,…}threadlayer 的单边形式连接,其中 threadlayer 是 ThreadingLayer 的名称或索引,或者按 src1threadlayer,src2threadlayer,…,srcnthreadlayer 的相应顺序给定的多个单独的边连接.
- 如果没有为输入端口明确指定名称,则 ThreadingLayer[f,…] 将公开名为 "Input1"、"Input2" 等的输入端口.
- ThreadingLayer[Function[… #Name1 … #Name2 …], …] 公开名为 "Name1"、"Name2"等的输入端口.
- ThreadingLayer[f,None] 强制所有输入数组具有相同的形状,而输出具有此形状. ThreadingLayer[f,Automatic] 强制所有输入数组具有相同的秩,并且各自的形状必须相同或等于 1. ThreadingLayer[Plus,-1] 通过在最深层插入维数来自动广播输入(如 Plus).
- ThreadingLayer[…][{in1,in2,…}] 显式计算应用网络层的输出,这有效地由 f[in1,in2,…] 给出.
- 当给定 NumericArray 作为输入时,输出将是 NumericArray.
- Options[ThreadingLayer] 给出构建网络层的默认选项的列表. Options[ThreadingLayer[…]] 给出在一些数据上运行网络层的默认选项列表.
- Information[ThreadingLayer[…]] 给出关于网络层的报告.
- Information[ThreadingLayer[…],prop] 给出 ThreadingLayer[…] 的属性 prop 的值. 可能的属性与 NetGraph 一样.
范例
打开所有单元关闭所有单元基本范例 (6)
创建一个 ThreadingLayer,使用 Times 作为线性作用的函数:
创建一个 ThreadingLayer 来对不同维度的数组求和,并在第一个维度上广播最小的数组:
创建一个 ThreadingLayer 来对不同维度的数组求和,并在最后一个维度上广播最小的数组:
将 ThreadingLayer 用于 NetGraph:
创建一个 NetGraph 来使用 ThreadingLayer 计算两个数组的外和:
输入端口的名称可以直接在 ThreadingLayer 函数中指定:
范围 (2)
创建一个接受特定数量输入的 ThreadingLayer:
创建一个使用自定义转换来计算高斯球面的 ThreadingLayer:
应用 (1)
使用 ThreadingLayer 定义一个铰链损失:
可能存在的问题 (3)
文本
Wolfram Research (2017),ThreadingLayer,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ThreadingLayer.html (更新于 2021 年).
CMS
Wolfram 语言. 2017. "ThreadingLayer." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/ThreadingLayer.html.
APA
Wolfram 语言. (2017). ThreadingLayer. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ThreadingLayer.html 年