Pytorch笔记:维度dim的定义及其理解使用

本文详细解读了numpy中a.max()函数在不同维度上的应用,通过实例说明了max在0、1、2维度上的操作原理,并介绍了sum函数在相同维度上的聚合行为。重点在于理解数组维度操作在实际数据分析中的作用。

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

import numpy as np

# 随机生成维度2*3*4的矩阵
a = np.random.randint(1, 100, [2, 3, 4])
a=
array([[[11,  6, 15, 41],
        [71,  8, 22, 44],
        [58, 30, 60, 27]],

       [[34, 66, 14, 41],
        [42, 37, 85, 20],
        [72, 21,  2, 41]]])
a.max(0)=
array([[34, 66, 15, 41],
       [71, 37, 85, 44],
       [72, 30, 60, 41]])
a.max(1)=
array([[71, 30, 60, 44],
       [72, 66, 85, 41]])
a.max(2)=
array([[41, 71, 60],
       [66, 85, 72]])

a.max(0)相当于a.max(dim=0)a.shape=(2,3,4),当dim=0时,则表示在2维度上进行操作,a[0][0][0]=11a[1][0][0]=34比较大小,a[0][0][1]=6a[1][0][1]=66比较大小,最终生成的矩阵维度是3×43 \times 43×4

a.max(1)相当于a.max(dim=1),表示在3维度上进行操作,
a[0][0][0]=11a[0][1][0]=71a[0][2][0]=58比较大小,
a[0][0][1]=6a[0][1][1]=8a[0][2][1]=30比较大小

a.max(2)相当于a.max(dim=2),表示在4维度上进行操作,
a[0][0][0]=11a[0][0][1]=6a[0][0][2]=15a[0][0][3]=41比较大小,
a[0][1][0]=71a[0][1][1]=8a[0][1][2]=22a[0][1][3]=44比较大小,

再举例介绍sum():

a.sum(0)=
array([[ 45,  72,  29,  82],
       [113,  45, 107,  64],
       [130,  51,  62,  68]])
 a.sum(1)=
 array([[140,  44,  97, 112],
       [148, 124, 101, 102]])
a.sum(2)=
array([[ 73, 145, 175],
       [155, 184, 136]])

a.sum(0):维度3×43 \times 43×4 a[0][0][0]+a[1][0][0]=11+34a[0][0][1]+a[1][0][1]=6+66
a.sum(1)a[0][0][0]+a[0][1][0]+a[0][2][0]=11+71+58a[0][0][1]+a[0][1][1]+a[0][2][1]=6+8+30
a.sum(2)a[0][0][0]+a[0][0][1]+a[0][0][2]+a[0][0][3]=11+6+15+41a[0][1][0]+a[0][1][1]+a[0][1][2]+a[0][1][3]=71+8+22+44

### 关于 PyTorch 教程笔记 #### PyTorch 简介 PyTorch 是一个开源的机器学习库,支持从研究原型到生产部署的无缝过渡。它提供了灵活的张量计算能力以及强大的自动求导功能,使得神经网络训练变得简单而高效[^1]。 #### 安装 PyTorch 为了在 Windows 10 上安装 PyTorch 1.6.0 并配置 CUDA 10.2 和 torchvision,可以使用 Conda 进行如下操作: ```bash conda install pytorch=1.6.0 torchvision cudatoolkit=10.2 -c pytorch ``` 这条命令会创建并激活一个新的虚拟环境来确保依赖项之间不会发生冲突[^2]。 #### 使用 Jupyter Notebook 编写代码 Jupyter Notebook 提供了一种交互式的编程体验,允许用户逐块执行 Python 代码片段,这有助于更好地理解和调试程序逻辑。然而,在使用前需确认已正确设置了工作目录和数据集路径[^3]。 #### 计算模型预测准确性 下面展示了如何利用 `argmax` 函数获取每条样本的最大概率对应的类别索引,并将其与真实标签对比以统计分类器的表现情况: ```python import torch output = torch.tensor([[0.1, 0.2], [0.3, 0.4]]) preds = output.argmax(dim=1) # 获取最大值所在位置作为预测结果 targets = torch.tensor([0, 1]) # 实际目标值 correct_predictions = (preds == targets).sum().item() print(f'Correct Predictions: {correct_predictions}') ``` 这段代码先通过调用 `argmax()` 方法沿指定维度找到最高分数的位置;接着比较这些位置是否匹配实际的目标向量中的元素;最后累加所有正确的判断次数得到总的准确数目[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值