nn.Linear()函数详解及代码使用

这是官方给出的文档,需要注意的是,虽然在神经网络中,我们一般输入都是二维的tensor矩阵(batch,input_size),但其实输入的维度是不做限制的。如果是三维的输入,会将前两维的数据先乘一起,然后在做计算,实际上还是单层神经网络的计算。个人理解,这个函数就是改变最后一维,也就是数据的特征维度,通过调整output_size的尺寸来扩张或者是收缩特征。

import torch.nn as nn
import torch
import numpy as np


X_2dim=np.array([[1,2,3,4],[2,3,45,6]]) #二维数组(2,4)
X_3dim=np.array([[[1,2,3,4],[2,3,4,6],[3,4,5,5]],[[1,1,5,6],[0,0,6,5],[3,3,5,7]]]) # 三维数组(2,3,4)

#转成tensor的形式,因为Linear要求输入是float类型,因此还需要转成float32
X2_tensor=torch.from_numpy(X_2dim.astype(np.float32))
X3_tensor=torch.from_numpy(X_3dim.astype(np.float32))

#用来改变最后数组最后一维的维度
#用来缩小或者扩展特征维度
emdeding=nn.Linear(4,3)
Y2=emdeding(X2_tensor)
Y3=emdeding(X3_tensor)

#输出
print(Y2)
print(Y3)

#Y2
tensor([[ 0.6468,  0.6430,  0.4253],
        [-2.9180, -3.3393,  6.3075]], grad_fn=<AddmmBackward>)

#Y3
tensor([[[0.6468, 0.6430, 0.4253],
         [1.0562, 0.8781, 0.6216],
         [0.7615, 0.3500, 0.7439]],

        [[1.1430, 0.6462, 0.8132],
         [0.7745, 0.4598, 0.9190],
         [1.4516, 0.5589, 0.8545]]], grad_fn=<AddBackward0>)



  • 42
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
nn.Linear是PyTorch中的一个类,用于定义一个全连接层。它接受两个参数,输入特征数和输出特征数。通过调用该类的实例,可以创建一个全连接层模型。 引用\[1\]中的代码展示了如何使用nn.Linear创建一个全连接层模型。在这个例子中,输入特征数为1,输出特征数为2。模型的结构包括一个线性层和一个ReLU激活函数。 引用\[2\]中的代码展示了另一个例子,使用nn.Linear实现了一个全连接层。在这个例子中,输入特征数为5,输出特征数为3。 引用\[3\]中的代码演示了如何使用nn.Linear进行预测。在这个例子中,输入特征数为2,输出特征数为1。通过将输入样本传递给模型,可以得到一个输出结果。 总结来说,nn.Linear是PyTorch中用于定义全连接层的类,可以根据需要设置输入特征数和输出特征数,然后使用该类创建一个全连接层模型。 #### 引用[.reference_title] - *1* *2* [Pytorch入门之一文看懂nn.Linear](https://blog.csdn.net/MR_kdcon/article/details/108918272)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Pytorch nn.Linear的基本用法与原理详解](https://blog.csdn.net/zhaohongfei_358/article/details/122797190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值