NetExtract[layer,"param"]
提取指定网络层的参数的值.
NetExtract[net,lspec]
NetExtract[net,{lspec,"param"}]
从 net 内由 lspec 标识出的层提取参数 param 的值.
NetExtract[net,NetArray[spec]]
提取网络或层中共享数组的值.
NetExtract[coder,"param"]
提取指定的 NetEncoder 或 NetDecoder 的参数值.
NetExtract[…,{spec1,spec2,…}]
提取一组元素,其中每个 speci 是一个列表
NetExtract[spec]
表示 NetExtract 的运算符形式,可应用于表达式.
NetExtract
NetExtract[layer,"param"]
提取指定网络层的参数的值.
NetExtract[net,lspec]
NetExtract[net,{lspec,"param"}]
从 net 内由 lspec 标识出的层提取参数 param 的值.
NetExtract[net,NetArray[spec]]
提取网络或层中共享数组的值.
NetExtract[coder,"param"]
提取指定的 NetEncoder 或 NetDecoder 的参数值.
NetExtract[…,{spec1,spec2,…}]
提取一组元素,其中每个 speci 是一个列表
NetExtract[spec]
表示 NetExtract 的运算符形式,可应用于表达式.
更多信息
- NetExtract 支持网络层指定 All,以表明应返回一个关联,给出 NetGraph 或 NetChain 内的所有网络层,或给出网络层、NetEncoder 和 NetDecoder 的所有属性.
- 网络层指定可以是一个整数,表明第 n 层,也可以是一个字符串,表明一个已命名的网络层.
- 参数指定可以是任意数组的名称或一个网络层包含的选项.
- 如果学到的参数还没有被初始化,或还没有推断出未学到的参数,NetExtract 返回 Automatic.
- 当 speci 不是列表时,NetExtract[net,{spec1,spec2,…}] 等价于 net[[spec1,spec2,…]].
- 对于 NetChain、NetGraph、NetEncoder、NetDecoder 和网络层,Normal[net] 等价于 NetExtract[net,All].
范例
打开所有单元 关闭所有单元基本范例 (4)
layer = NetInitialize @ LinearLayer[2, "Input" -> 2]NetExtract[layer, "Weights"]//Normal创建一个 NetChain:
chain = NetChain[{1, 2, 3}]NetExtract[chain, 3]op = NetMapOperator[LinearLayer[5]]NetExtract[op, "Net"]创建一个 NetEncoder:
encoder = NetEncoder["Image"]NetExtract[encoder, "Type"]NetExtract[encoder, "Output"]NetExtract[encoder, "ColorSpace"]范围 (7)
用已命名层创建 NetChain:
chain = NetChain[<|"x" -> LinearLayer[5], "y" -> Ramp, "z" -> LinearLayer[10]|>]NetExtract[chain, 1]NetExtract[chain, -1]NetExtract[chain, "y"]NetExtract[chain, {2, "Function"}]NetExtract[chain, {{1}, {3}}]NetExtract[chain, All]创建一个初始化的 NetChain:
chain = NetInitialize @ NetChain[<|"a" -> 2, "b" -> 2, "c" -> 2|>, "Input" -> 2]NetExtract[chain, {2, "Weights"}]NetExtract[chain, {All, "Weights"}]用已命名层创建 NetGraph 对象:
graph = NetGraph[<|"linear1" -> LinearLayer[2], "linear2" -> LinearLayer[5]|>, {"linear1" -> "linear2"}]NetExtract[graph, "linear1"]NetExtract[graph, All]net = FlattenLayer["Input" -> {5, 5}]NetExtract[net, "Input"]NetExtract[net, "Output"]net = PoolingLayer[5, "Input" -> NetEncoder["Image"]]NetExtract[net, "Input"]NetExtract[net, {"Input", "ImageSize"}]NetExtract[net, {"Input", {"Type", "Output"}}]net = NetInitialize[NetChain[{NetInsertSharedArrays[EmbeddingLayer[3]], NetInsertSharedArrays[LinearLayer[2]]}]]NetExtract[net, NetArray[All]]NetExtract[net, NetArray["Weights"]]在该例子中,NetArray["Weights"] 对应于所有层中的权值:
NetExtract[net, {All, "Weights"}]使用一个 NetExtract 运算符:
NetExtract[1]@NetChain[{ElementwiseLayer[Sin], SummationLayer[]}]属性和关系 (1)
NetExtract 所支持的部分指定与 NetReplacePart 使用的完全相同. 提取 NetChain 的第三层的权重:
partSpec = {3, "Weights"};net = NetInitialize@NetChain[{LinearLayer[2], Ramp, LinearLayer[3], Ramp}, "Input" -> {3}];NetExtract[net, partSpec]NetReplacePart[net, partSpec -> {{1, 2}, {3, 4}, {5, 6}}]可能存在的问题 (1)
创建一个 ConvolutionLayer:
conv = ConvolutionLayer[3, {2, 2}]试图提取该未初始化层的权重,返回的是 Automatic:
NetExtract[conv, "Weights"]NetExtract[conv, "KernelSize"]相关指南
-
▪
- 神经网络运算 ▪
- 神经网络的创建和属性
文本
Wolfram Research (2016),NetExtract,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NetExtract.html (更新于 2020 年).
CMS
Wolfram 语言. 2016. "NetExtract." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/NetExtract.html.
APA
Wolfram 语言. (2016). NetExtract. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/NetExtract.html 年
BibTeX
@misc{reference.wolfram_2026_netextract, author="Wolfram Research", title="{NetExtract}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/NetExtract.html}", note=[Accessed: 06-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_netextract, organization={Wolfram Research}, title={NetExtract}, year={2020}, url={https://reference.wolfram.com/language/ref/NetExtract.html}, note=[Accessed: 06-November-2026]}