PyTorch的nn.Linear()的理解

本文详细介绍了PyTorch中torch.nn.Linear模块的工作原理,包括输入输出维度的定义及如何进行张量变换。通过具体实例,展示了如何创建全连接层,设置输入输出维度,并进行前向传播计算。

在这里插入图片描述

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

in_features输入的是二维张量的大小,输入[N, Hin]作为全连接层的输入,N一般指的是batch_size(样本数量),Him指的的是每一个样本的维度大小

out_features指的是输出的二维张量的大小,输出(N,Hout)N一般指的是batch_size(样本数量),Hout指的是每一个样本输出的维度大小,也代表了该全连接层的神经元个数

相当于一个输入为[batch_size, in_features]的张量变换成了[batch_size, out_features]的输出张量

定义一个全连接层输入维度大小10 输出维度大小15,测试其输入输出


>>> fc=nn.Linear(10,15)
>
定义一个input_text作为fc的输入,20个样本 每一个样本的维度大小为10

>>> input_text=torch.randn(20,10)
>>> input_text
tensor([[ 0.5634,  1.0797, -0.2739, -0.5231, -0.3393,  1.1104, -0.2017, -0.0966,
         -1.4458, -1.7758],
        [-1.4232,  0.6796,  0.1717, -0.4230, -0.2710,  1.2147,  1.7306,  0.0239,
          0.7102,  0.1282],
        [ 1.0540,  0.4645,  1.3008, -0.2010,  1.6890,  0.3166, -0.1252, -0.0690,
          0.3482,  1.2433],
        [ 1.4939, -1.0104, -0.1116, -0.0502,  0.7267,  0.3448, -0.4479, -0.4113,
         -0.3029, -0.6073],
        [-0.5994, -1.5742, -2.0787,  1.1467, -1.2804,  0.6828, -0.9692, -1.6204,
         -1.0283, -0.6964],
        [ 0.2336, -0.2322,  1.2112, -0.4068, -0.6032,  0.2960, -0.2923, -0.1780,
          0.3501, -0.8640],
        [ 1.3801,  0.7794, -0.6012,  2.0979,  0.8809, -0.7856, -0.0502,  0.9142,
          0.1903,  2.3709],
        [-0.3090, -1.3813, -0.1347, -0.9364, -0.7701, -0.6507,  1.5855,  1.2936,
         -1.2553,  0.6814],
        [ 0.0691, -0.6342, -0.3846, -1.2839,  0.9339,  0.4181, -0.1047,  0.9791,
         -1.0878,  2.1031],
        [ 0.4759, -0.4706, -0.5551,  0.7296,  0.0382,  0.9609, -1.6298, -0.1432,
         -
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值