- torch.nn.Linear
python
torch.nn.Linear(in_features,out_features,bias=True,device=None,dtype=None)
- 对输入的数据应用一个线性变换:
- 该模块支持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)的可学习的模块权重,值从初始化,这里;
- bias---形状为(out_features)的可学习的偏置模块,如果设置为True,值从初始化,这里;
实例
python
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])