• torch.nn.Linear
torch.nn.Linear(in_features,out_features,bias=True,device=None,dtype=None)
  • 对输入的数据应用一个线性变换:

PyTorch概述(五)---LINEAR-LMLPHP

  • 该模块支持TensorFLoat32类型的数据;
  • 在某些ROCm设备上,使用float16类型的数据输入时,该模块在反向传播中使用不同的精度;

参数

  • in_features(int)---每一个输入样本数据的大小;
  • out_features(int)---每一个输出样本的大小;
  • bias(bool)---如果设置为Flase,该层将不学习一个可加合的偏置,默认为True;

形状

  • Input:(*,Hin)---这里的*意味着任何维度包括空,Hin=in_features;
  • OUtput(*,Hout)---这里除了最后一个维度之外,所有的形状同输入一样,Hout=out_features;

变量

  • weight(torch.Tensor)---形状为(out_features,in_features)的可学习的模块权重,值从PyTorch概述(五)---LINEAR-LMLPHP初始化,这里PyTorch概述(五)---LINEAR-LMLPHP;
  • bias---形状为(out_features)的可学习的偏置模块,如果设置为True,值从PyTorch概述(五)---LINEAR-LMLPHP初始化,这里PyTorch概述(五)---LINEAR-LMLPHP;

实例

import torch
import torch.nn as nn

m=nn.Linear(20,30)
input=torch.randn(128,20)
output=m(input)
print(output.size())#torch.size([128,30])
03-01 23:22