NetInitialize

NetInitialize[net]

给出一个网络,其中,net 的所有未被初始化的可习得参数已被赋予初始值.

NetInitialize[net,All]

给出一个网络,其中,所有可习得参数已被赋予初始值.

更多信息和选项

  • NetInitialize[net,All] 覆盖 net 中任何已存在的训练或预设可习得参数.
  • NetInitialize 通常为表示权重的参数分配随机值,对表示偏置的参数赋予零值.
  • 可以包括下列可选参数:
  • Method "Kaiming"使用何种初始化方法
    RandomSeeding1234伪随机生成器的种子
  • Method 的可能设置包括:
  • "Kaiming"选择权重以保留通过层传播时数组的方差,该方法由 Kaiming He 等推出 (2015)
    "Xavier"选择权重以保留通过层传播时数组的方差,该方法由 Xavier Glorot 等推出 (2014)
    "Orthogonal"选择成为正交矩阵的权重
    "Random"从给定单变量分布中选择权重
    "Identity"选择权重以在仿射层之间传播时保留数组的分量
  • 可以用 Method{"method",opt1val1,} 指定特定方法的子选项.
  • 对于方法 "Kaiming""Xavier",支持下列子选项:
  • "Distribution""Normal""Normal""Uniform"
  • 对于方法 "Random",支持下列子选项:
  • "Weights"NormalDistribution[0,1]初始化权重矩阵要使用的随机分布
    "Biases"None初始化偏置向量要使用的随机分布
  • 对于方法 "Identity",支持下列子选项:
  • "Distribution"NormalDistribution[0,0.01]为打破对称向初始单位矩阵添加噪声用的随机分布
  • 对于应赋予一个分布的子选项,可以指定数值 stddev ,然后视其为 NormalDistribution[0,stddev].
  • 缺省情况下,所有的方法都将偏置向量初始化为零.
  • RandomSeeding 的可能设置包括:
  • Automatic每次调用函数时自动重新播种
    Inherited使用外部播种的随机数
    seed使用明确的整数或字符串作为种子

范例

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

基本范例  (1)

创建未初始化的网络层:

用随机权重初始化该层:

提取新的初始化过的权重:

范围  (1)

指定 "Random" 初始化,对权重和偏置矩阵使用标准差为 2 的正态分布:

提取并绘制初始化权重和偏差:

选项  (1)

Method  (1)

定义一个网络:

"Xavier" 初始化方法初始化网络:

指定 "Xavier" 方法从均匀分布采样:

绘制第一层的权重的直方图:

指定 "Xavier" 方法从均匀分布采样:

绘制第一层的权重的直方图:

属性和关系  (2)

在训练开始前 NetTrain 会自动调用 NetInitialize. 在训练前将一个简单网络层的权重和偏置初始化:

训练后提取权重和偏置:

创建一个把长度为1 的向量映射到长度为1 的向量的网络:

"Identity" 方法初始化网络,这样在所得网络中,会在穿过各个线性层时试图保留数组的分量:

可视化网络作为输入的函数的输出:

用其他方法初始化网络将产生一个随机线性函数:

可能存在的问题  (2)

属于特定层的参数有固定的初始化方法,与 NetInitializeMethod 选项的设置无关:

默认情况下,NetInitialize 使用 RandomSeeding1234,当重复调用 NetInitialize,它会使用随机种子初始化网络:

使用 RandomSeedingAutomatic 确保重复调用产生不同的初始化:

巧妙范例  (1)

研究权重和偏置值的大小怎样影响一个简单的把单个值映射到长度为 8 的向量的非线性网络:

Wolfram Research (2016),NetInitialize,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NetInitialize.html (更新于 2022 年).

文本

Wolfram Research (2016),NetInitialize,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NetInitialize.html (更新于 2022 年).

CMS

Wolfram 语言. 2016. "NetInitialize." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/NetInitialize.html.

APA

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

BibTeX

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

BibLaTeX

@online{reference.wolfram_2024_netinitialize, organization={Wolfram Research}, title={NetInitialize}, year={2022}, url={https://reference.wolfram.com/language/ref/NetInitialize.html}, note=[Accessed: 25-November-2024 ]}