IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> torch.max()——数组的最大值 -> 正文阅读

[人工智能]torch.max()——数组的最大值

PyTorch学习笔记:torch.max——数组的最大值

torch.max()——数组的最大值

torch.max()有两种形式

形式Ⅰ

torch.max(input) → Tensor

功能:输出数组的最大值

注意:

  • 只有一个输入,只需要输入一个数组
  • 该方式也可以通过a.max()实现,后者是求数组a的最大值

形式Ⅱ

torch.max(input, dim, keepdim=False, *, out=None) -> (Tensor, LongTensor)

功能:按指定维度判断,返回数组的最大值以及最大值处的索引

输入:

  • input:待判定的数组
  • dim:给定的维度
  • keepdim:如果指定为True,则输出的张量数组维数和输入一致,并且除了dim维度是1,其余的维度大小和输入数组维度大小一致。如果改为False,则相当于将True的结果压缩了(删去了大小是1的dim维度)。两者的差别就在于是否保留dim维度

注意:

  • 如果在指定的维度中,有多个重复的最大值,则返回第一个最大值的索引
  • 该函数返回由最大值以及最大值处的索引组成元组(max,max_indices)
  • 该函数也可以通过a.max()实现,后者是求数组a的最大值,只需要再指明dim以及keepdim即可
  • 输出的索引是对应的dim维度上的索引,注意含义。

上述两种函数形式本质区别就是有没有指出dim,如果未指出dim,则返回整个数组的最大值,不返回索引。如果指出了dim,则在指定的维度上搜索最大值,返回最大值以及索引。

代码案例

一般用法

import torch
a=torch.arange(10).reshape(2,5)
b=torch.max(a)
c=torch.max(a,0)
print(a)
print(b)
print(c)

输出

# 原数组
tensor([[0, 1, 2, 3, 4],
        [5, 6, 7, 8, 9]])
# 不输入dim时,返回数组的最大值
tensor(9)
# 输入dim时,返回指定维度的最大值及索引
torch.return_types.max(
# 第一个是值,按dim=0比较得到的
values=tensor([5, 6, 7, 8, 9]),
# 第二个是值对应的索引,对应维度dim=0上的索引
indices=tensor([1, 1, 1, 1, 1]))

keepdim定为True或者Flase的区别

import torch
a=torch.arange(10).reshape(2,5)
b=torch.max(a,0,True)
c=torch.max(a,0)
print(a.shape)
# 这里定为0和1都一样,值与索引具有同样的形状
print(b[0].shape)
print(c[0].shape)

输出,只有维度不同

torch.Size([2, 5])
torch.Size([1, 5])
torch.Size([5])

不同的dim对结果的影响,这里以input的维数是3为例,维数更多的可以类推,首先定义好数组input

import torch
a=torch.arange(32).reshape(2,4,4)
print(a)
tensor([[[ 0,  1,  2,  3],
         [ 4,  5,  6,  7],
         [ 8,  9, 10, 11],
         [12, 13, 14, 15]],

        [[16, 17, 18, 19],
         [20, 21, 22, 23],
         [24, 25, 26, 27],
         [28, 29, 30, 31]]])

dim为0

b=torch.max(a,0)
print(b)

在这里插入图片描述

输出:

torch.return_types.max(
values=tensor([[16, 17, 18, 19],
        [20, 21, 22, 23],
        [24, 25, 26, 27],
        [28, 29, 30, 31]]),
indices=tensor([[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]]))

dim为1

c=torch.max(a,1)
print(c)

在这里插入图片描述

输出

torch.return_types.max(
values=tensor([[12, 13, 14, 15],
        [28, 29, 30, 31]]),
indices=tensor([[3, 3, 3, 3],
        [3, 3, 3, 3]]))

dim为2

d=torch.max(a,2)
print(d)

在这里插入图片描述

输出

torch.return_types.max(
values=tensor([[ 3,  7, 11, 15],
        [19, 23, 27, 31]]),
indices=tensor([[3, 3, 3, 3],
        [3, 3, 3, 3]]))

扩展

在分类任务中经常用到该函数,softmax函数输出得到的概率再经过torch.max函数得到最终的预测结果(预测结果一般和索引值一一对应,因此可以用索引值来表示预测结果),可以进一步与标签做比较,得到准确率。

import numpy as np
import torch
# 假设batch_size=16,每批次有20个概率值(即20分类)
# 网络结构会得到16行20列的数组
a = torch.tensor(np.random.rand(16, 20))
# 索引号代表预测结果
pre = torch.max(a,dim=1)[1]
print(pre)
print(pre.shape)

输出,共有16个结果(对应batch_size=16)

tensor([11, 10,  1,  9, 19, 19, 15, 14,  5,  2, 17, 14, 13, 15, 15, 17])
torch.Size([16])

官方文档

torch.max():https://pytorch.org/docs/stable/generated/torch.max.html?highlight=torch%20max#torch.max

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 15:47:40  更:2021-09-20 15:49:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:31:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码