pytorch 中的dim 的作用范围

文章介绍了在PyTorch中,如何使用`dim`参数进行二维和三维张量的计算,包括按列或行求和以及softmax操作。着重讲解了`dim=0`、`dim=1`和`dim=2`在不同维度上的作用。
摘要由CSDN通过智能技术生成

1. 二维矩阵时

不同的运算, dim 的作用域都是一样的思想;

当数据是二维矩阵时, 可以按照下面的思想理解

对于矩阵:
dim=0 按列操作(沿列向下)。
dim=1 按行操作(跨行)。

解释如下:

dim=0 :这是指张量的第一个维度,通常被视为行。如果您沿此维度应用函数,它将按列处理数据。换句话说,该函数独立地应用于每一列。

dim=1 :这是指张量的第二维,通常被视为列。当您沿此维度应用函数时,它会按行处理数据。也就是说,该函数独立地应用于每一行。

1.1 求和

>> a = torch.Tensor([[1,2,3], [4,5,6]])
>> print(a.shape)
torch.Size([2, 3])

>> print(torch.sum(a, dim=0))
tensor([5., 7., 9.])

>> print(torch.sum(a, dim=1))
tensor([ 6., 15.])

1.2 softmax

dim = 0) #对每一列进行softmax;
dim =1) #对每一行进行softmax;

import torch

import torch.nn.functional as F

x= torch.Tensor( [ [1,2,3,4],[1,2,3,4],[1,2,3,4]])

y1= F.softmax(x, dim = 0) #对每一列进行softmax
print(y1)

y2 = F.softmax(x,dim =1) #对每一行进行softmax
print(y2)

x1 = torch.Tensor([1,2,3,4])
print(x1)

y3 = F.softmax(x1,dim=0) #一维时使用dim=0,使用dim=1报错
print(y3)
(deeplearning) userdeMBP:pytorch user$ python test.py 
tensor([[0.3333, 0.3333, 0.3333, 0.3333],
        [0.3333, 0.3333, 0.3333, 0.3333],
        [0.3333, 0.3333, 0.3333, 0.3333]])
tensor([[0.0321, 0.0871, 0.2369, 0.6439],
        [0.0321, 0.0871, 0.2369, 0.6439],
        [0.0321, 0.0871, 0.2369, 0.6439]])
tensor([1., 2., 3., 4.])
tensor([0.0321, 0.0871, 0.2369, 0.6439])

2. 三维张量时

当dim=0时, 是对每一维度相同位置的数值进行softmax运算,和为1
当dim=1时, 是对某一维度的列进行softmax运算,和为1
当dim=2时, 是对某一维度的行进行softmax运算,和为1

import torch 
import torch.nn.functional as F 
input= torch.randn(2,2,3))
print(input)

在这里插入图片描述
dim= 0,
在这里插入图片描述

dim=1,
在这里插入图片描述

dim =2

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Pytorch搭建Transformer模型的方法如下所示。首先,我们需要安装tab-transformer-pytorch库,可以使用命令"pip install tab-transformer-pytorch"进行安装。然后,我们可以使用以下代码导入所需的库并构建Transformer模型: ``` import torch from tab_transformer_pytorch import TabTransformer # 定义输入的维度和输出的维度 input_dim = ... output_dim = ... # 定义Transformer的超参数 num_layers = ... d_model = ... nhead = ... dim_feedforward = ... # 构建Transformer模型 model = TabTransformer( input_dim=input_dim, output_dim=output_dim, num_layers=num_layers, d_model=d_model, nhead=nhead, dim_feedforward=dim_feedforward ) ``` 在这个代码段,我们首先导入了torch库以及tab_transformer_pytorch库。然后,我们定义了输入维度和输出维度。接下来,我们可以根据自己的需求修改超参数,例如层数、隐藏层维度等等。最后,我们使用TabTransformer类构造了一个Transformer模型。 使用此模型进行训练时,您需要定义损失函数和优化器,并使用PyTorch的标准训练循环进行训练。这些步骤超出了此回答的范围,但您可以参考PyTorch的官方文档或其他资源来了解更多关于如何训练Transformer模型的信息。 总结起来,要在Pytorch搭建Transformer模型,您需要安装tab-transformer-pytorch库,并使用TabTransformer类构建模型,然后根据需求设置超参数并进行训练。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [tab-transformer-pytorch:在 Pytorch 实现 TabTransformer,表格数据的注意力网络](https://download.csdn.net/download/weixin_42118770/19218406)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [pytorch实现transformer模型](https://blog.csdn.net/qq_23345187/article/details/129357428)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [深度学习实战24-人工智能(Pytorch)搭建transformer模型,真正跑通transformer模型,深刻了解transformer的...](https://blog.csdn.net/weixin_42878111/article/details/130043148)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值