pytorch 中的dim 的作用范围

1. 二维矩阵时

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

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

对于矩阵:

dim=0 按列操作(沿列向下)。

dim=1 按行操作(跨行)。

解释如下:

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

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

1.1 求和

python 复制代码
>> 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;

python 复制代码
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)
python 复制代码
(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

python 复制代码
import torch 
import torch.nn.functional as F 
input= torch.randn(2,2,3))
print(input)

dim= 0,

dim=1,

dim =2

相关推荐
小程故事多_80几秒前
OpenClaw 实战|多 Agent 打通小红书:数据收集 + 笔记编写 + 自动发布一步到位
人工智能·笔记·aigc
Olafur_zbj2 分钟前
【AI】深度解析OpenClaw智能体循环(Agentic Loop):底层运行机制、ReAct演进与多智能体协同架构
人工智能·react.js·架构·agent·openclaw
wuxinyan1233 分钟前
Java面试题42:一文深入了解AI Coding 工具
java·人工智能·面试题·ai coding
Dxy12393102163 分钟前
PyTorch训练的艺术:精通ReduceLROnPlateau学习率调度器
人工智能·pytorch·学习
IT 行者5 分钟前
每天了解几个MCP SERVER:Atlan 数据目录平台
人工智能·mcp
w_t_y_y7 分钟前
工具Cursor(六)Rules&Skill&Commands&subAgents对比
服务器·人工智能
所谓伊人,在水一方3337 分钟前
【Python数据科学实战之路】第10章 | 机器学习基础:从理论到实践的完整入门
开发语言·人工智能·python·机器学习·matplotlib
东离与糖宝9 分钟前
告别Python!Spring Boot 3集成GPT-5.4,Java后端10分钟接入原生计算机操作
java·人工智能
林洛10 分钟前
多 Agent 系统的三个隐形工程问题,以及一个基于 MCP 的解法
人工智能
AI大法师13 分钟前
品牌IP工程化落地:9步流程+6类线上故障排查
人工智能