PyTorch学习笔记:nn.Linear——线性回归层

PyTorch学习笔记:nn.Linear——线性回归层

torch.nn.Linear(in_features, out_features, bias=True, device=None, dtype=None)

功能:对输入数据应用线性变换运算: y = x A T + b y=xA^T+b y=xAT+b

输入:

  • in_features:输入样本的尺寸,即 x x x的长度
  • out_features:输出样本的尺寸,即 y y y的长度
  • bias:是否添加偏置项,如果设置为False,则该层不会学习附加的偏置项,默认为True

注意:

  • 线性层的输入可以是任意维度,最后一个维度表示x,并且最后一个维度的长度必须与定义线性回归层使用的参数in_features大小一致

补充:

  • 线性回归层的权重参数可以通过.weight方法调取,偏置参数可以通过.bias方法调取

  • 网络参数尺寸由输入样本尺寸和输出样本尺寸决定:权重参数为2维数组,尺寸为[out_features, in_features];偏置参数尺寸为1维数组,尺寸为[out_features]

  • 初始化的参数服从均匀分布:
    u ( − k , k ) , 其中 k = 1 i n _ f e a t u r e s u(-\sqrt{k},\sqrt{k}),其中k=\frac1{in\_features} u(k ,k ),其中k=in_features1

代码案例

一般用法

import torch.nn as nn
import torch
x = torch.arange(10, dtype = torch.float32).view(1,10)
lin = nn.Linear(in_features=10, out_features=5)
y = lin(x)
print(x)
print(y)

输出

# 经过线性回归层之前
tensor([[0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]])
# 经过线性回归层之后
tensor([[-2.8759,  3.0576, -0.7961, -1.2897,  3.7157]],
       grad_fn=<AddmmBackward>)

提取网络层的参数信息

print(lin.weight)
print(lin.weight.shape)
print(lin.bias)
print(lin.bias.shape)

输出

# 权重参数
Parameter containing:
tensor([[-0.0099,  0.2451, -0.0532,  0.1081, -0.0393, -0.1213, -0.1463,  0.0669,
         -0.1575, -0.0706],
        [-0.1148, -0.0775,  0.2737, -0.3030, -0.1963,  0.0923,  0.2992,  0.1199,
          0.2811, -0.1478],
        [-0.0505,  0.2176,  0.0202,  0.0401,  0.1174, -0.2441, -0.3055, -0.1314,
          0.2129,  0.0935],
        [-0.0078, -0.2243,  0.1759,  0.3004, -0.1303, -0.2597, -0.2271,  0.3144,
         -0.0914, -0.1003],
        [ 0.1836,  0.1219,  0.2339, -0.2303,  0.2604, -0.0198,  0.2339, -0.2411,
          0.2057,  0.1353]], requires_grad=True)
# 权重参数尺寸
torch.Size([5, 10])
# 偏置参数
Parameter containing:
tensor([-0.2704,  0.2675, -0.2156,  0.2969,  0.2958], requires_grad=True)
# 偏置参数尺寸
torch.Size([5])

官方文档

nn.Linear():https://pytorch.org/docs/stable/generated/torch.nn.Linear.html?highlight=linear#torch.nn.Linear

初步完稿于:2022年1月28日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉萌新、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值