<强>查看源码强>
线性的初始化部分:
类线性(模块): … __constants__=(“偏见”) def __init__(自我、in_features out_features偏见=True): 超级(线性,自我). __init__ () 自我。in_features=in_features 自我。out_features=out_features 自我。重量=参数(火炬。张量(out_features in_features)) 如果偏差: 自我。偏见=参数(torch.Tensor (out_features)) 其他: 自我。register_parameter(“偏见”,没有一个) self.reset_parameters () … >之前需要实现的内容:
@weak_script_method def向前(自我、输入): 返回F。线性(输入、自我。重量、self.bias)
返回的是:输入*重量+偏差
对于体重
重量:模块的可学的权重的形状 :数学:'(文本\ \ _feature}{,文本\ \ _feature} {)”。的值是 初始化:数学:“\ mathcal{你}——大概{k} \ \√{k})”,在那里 :数学:“k=\压裂{1}{\文本在\ _feature} {}”
对于偏见
偏见:形状的模块的可学的偏见:数学:“文本(\ \ _feature} {)”。 如果:attr:“偏见”是“真实”,初始化的值 :数学:‘\ mathcal{你}——大概{k} \ \√{k})” :数学:“k=\压裂{1}{\文本在\ _feature} {}”
<>强实例展示强>
举个例子:
在在在进口火炬 在在在nn1=torch.nn。线性(100年,50) 在在在input1=火炬。randn (140、100) 在在在output1=nn1 (input1) 在在在output1.size () 火炬。大小((140年,50)) >之前张量的大小由140 x 100变成了140 x 50
执行的操作是:
[140100]×(100年,50)=(140年,50)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
浅析PyTorch中nn.Linear的使用