浅析PyTorch中nn.Linear的使用

  

<强>查看源码
  

  

线性的初始化部分:

        类线性(模块):   …   __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 ()   …      之前      

需要实现的内容:
  

  

浅析PyTorch中nn.Linear的使用“> </p>
  <p>计算步骤:</p>
  
  <pre类=   @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的使用