pytorch 笔记:torch.nn.Linear() VS torch.nn.function.linear()

本文探讨了PyTorch中nn.Linear与F.linear两者的使用区别。nn.Linear提供了自动初始化权重和偏置的功能,只需输入和输出维度即可创建层。而F.linear则需要手动指定权重和偏置张量,其计算结果直接基于提供的参数。通过示例展示了两者在实际操作中的不同应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在torch的官方文档中,我们可以看到,在torch.nn.Linear()中包装了 torch.nn.function.linear()

毕竟两者的作用都是计算WX+b

但使用上还是有一定的区别的

1 nn.Linear()

他自己实现了初始化,所以调用linear时候的形参是输入和输出的维度即可

import torch
x=torch.nn.Linear(5,2)

data=torch.range(0,24).reshape(5,5)

data
'''
tensor([[ 0.,  1.,  2.,  3.,  4.],
        [ 5.,  6.,  7.,  8.,  9.],
        [10., 11., 12., 13., 14.],
        [15., 16., 17., 18., 19.],
        [20., 21., 22., 23., 24.]])
'''

x(data)
'''
tensor([[ 0.8468, -1.4685],
        [ 0.5045, -2.9832],
        [ 0.1622, -4.4980],
        [-0.1801, -6.0127],
        [-0.5224, -7.5275]], grad_fn=<AddmmBackward>)
'''

2 F.linear

weight=torch.randn(2,5)
weight
'''
tensor([[-0.5954, -1.3873, -2.1906, -1.0782, -0.0561],
        [-1.0716, -1.7687, -1.3936, -0.5306,  0.0729]])
'''

bias=torch.randn(5,2)
bias
'''
tensor([[-0.4511, -0.3892],
        [ 1.2683,  1.3100],
        [-0.3304, -0.8511],
        [-0.0068, -0.9265],
        [-0.4657,  1.5505]])
'''

torch.nn.functional.linear(data,weight,bias)
'''
tensor([[  -9.0075,   -5.6360],
        [ -36.5703,  -30.1186],
        [ -63.2932,  -53.7614],
        [ -88.9689,  -76.3569],
        [-115.5863,  -99.8941]])
'''

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

UQI-LIUWJ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值