FlattenLayer
表示一个网络层,可把任意输入数组压平成一个向量.
FlattenLayer[n]
表示把输入展平为层 n 的网络层.
FlattenLayer[{{s11,s12,…},{s21,s22,…},…}]
表示一个网络层,它通过合并所有层 sij 使每层 i 在结果中展平其输入.
更多信息和选项
- FlattenLayer 常被用在 NetChain、NetGraph 等中,把高阶数组转换成向量.
- 在 FlattenLayer[n] 中,n 可以为以下之一:
-
i 同时展平前 i+1 维 -i 同时展平后 i+1 维 Infinity 展平所有维 - FlattenLayer[] 等价于 FlattenLayer[Infinity].
- FlattenLayer 展示以下端口可用于 NetGraph 等:
-
"Input" 任意阶数的数组 "Output" 一个数组 - FlattenLayer 一般根据 NetChain 等的上下文推断其输入的维数. 使用 FlattenLayer["Input"->{n1,n2,…}] 明确指定维数为 {n1,n2,…}.
- FlattenLayer[…][input] 明确计算把层应用于 input 的输出.
- FlattenLayer[…][{input1,input2,…}] 明确计算每个 inputi 的输出.
- 当 NumericArray 作为输入时,输出将是 NumericArray.
- Options[FlattenLayer] 给出了构建层的默认选项列表. Options[FlattenLayer[…]] 给出了在某些数据上计算层的默认选项列表.
- Information[FlattenLayer[…]] 给出关于网络层的报告.
- Information[FlattenLayer[…],prop] 给出 FlattenLayer[…] 的属性 prop 的值. 可能的属性与 NetGraph 相同.
范例
打开所有单元关闭所有单元基本范例 (2)
范围 (4)
创建一个 FlattenLayer,压平输入的前两个维度,保留其他维度:
创建一个 FlattenLayer,同时压平输入的前三个维度,对一个 2×3×4×5 数组应用该层:
创建并应用 FlattenLayer,同时压平最后三个维度:
创建一个 FlattenLayer,将层 2 和层 3 展平为结果数组的第一层:
创建一个具有指定输入维度的 FlattenLayer:
属性和关系 (3)
FlattenLayer[] 的行为类似于 Flatten:
FlattenLayer[n] 计算:
FlattenLayer[n] 等价于 ReshapeLayer[dims],其中 dims 取决于 n 和 FlattenLayer 的输入的维度. 创建一个 3 阶数组:
应用一个特殊的 FlattenLayer:
应用一个等价的 ReshapeLayer:
可能存在的问题 (1)
FlattenLayer 不接受符号输入:
文本
Wolfram Research (2016),FlattenLayer,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FlattenLayer.html (更新于 2021 年).
CMS
Wolfram 语言. 2016. "FlattenLayer." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/FlattenLayer.html.
APA
Wolfram 语言. (2016). FlattenLayer. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/FlattenLayer.html 年