NetInitialize
NetInitialize[net]
给出一个网络,其中,net 的所有未被初始化的可习得参数已被赋予初始值.
NetInitialize[net,All]
给出一个网络,其中,所有可习得参数已被赋予初始值.
更多信息和选项
- NetInitialize[net,All] 覆盖 net 中任何已存在的训练或预设可习得参数.
- NetInitialize 通常为表示权重的参数分配随机值,对表示偏置的参数赋予零值.
- 可以包括下列可选参数:
-
Method "Kaiming" 使用何种初始化方法 RandomSeeding 1234 伪随机生成器的种子 - 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)
属性和关系 (2)
在训练开始前 NetTrain 会自动调用 NetInitialize. 在训练前将一个简单网络层的权重和偏置初始化:
可能存在的问题 (2)
属于特定层的参数有固定的初始化方法,与 NetInitialize 中 Method 选项的设置无关:
默认情况下,NetInitialize 使用 RandomSeeding1234,当重复调用 NetInitialize,它会使用随机种子初始化网络:
使用 RandomSeedingAutomatic 确保重复调用产生不同的初始化:
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 年