Pytorch学习:torch.argmax(input, dim, keepdim=False)详解

news2024/12/23 0:16:37

torch.argmax() 返回输入中所有元素的最大值的索引,与torch.max()中返回(values, indices)中的indices类似,它也常被用于深度学习中的分类问题。

在下面程序中,使用torch.argmax()

import torch

a = torch.tensor([[1, 2, 3, 4],
                  [4, 1, 2, 3],
                  [6, 2, 3, 4],
                  [3, 4, 5, 9]])

print(torch.argmax(a))

在这里插入图片描述
最大值在tensor(15)的位置

接下来引入dim属性,dim=0代表消去维数dim=0(行),即求每列最大值的索引。

print(torch.argmax(a, dim=0))

在这里插入图片描述
在这里插入图片描述
dim=1代表消去维数dim=1(列),即求每行最大值的索引。

print(torch.argmax(a, dim=1))

在这里插入图片描述在这里插入图片描述
再接下来引入keepdim属性,默认为False
它表示是否保留要消去的维数,用上面的程序来示范keepdim=True的情况,它保留了要消去的列。

print(torch.argmax(a, dim=1, keepdim=True))

在这里插入图片描述

在深度学习中,我们常用argmax来预测分类的标签,例如:

import torch

outputs = torch.tensor([[0.1, 0.2],
                        [0.3, 0.4]])

preds = outputs.argmax(1)
targets = torch.tensor([0, 1])
print((preds == targets).sum().item())

在这里插入图片描述
在这里插入图片描述

  1. 假设上面outputs是深度学习模型预测的概率值分布
  2. argmax(1)代表预测最大概率所在的标签
  3. 通过预测标签与真实标签相比,如果相等代表预测正确,否则相反,用来表示模型预测的正确率从而评估模型

下面是某深度学习模型在刚开始训练时所预测的标签与真实标签的差异,随着训练的进行,准确率也会不断上升。

在这里插入图片描述
在这里插入图片描述

官方文档:torch.argmax(input,dim,keepdim=False)
主要参数:

  • input(Tensor)-输入张量。
  • dim(int)-要减少的维度。如果为 None ,则返回展平输入的argmax。
  • keepdim(bool)-输出张量是否保留了 dim 。如果 dim=None ,则忽略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5个免费的3D钣金CAD软件

作为一名咨询顾问,我一直在寻找能够满足大客户需求的最佳 CAD 软件。 但我知道并不是每个人都在寻找劳斯莱斯式的钣金设计解决方案。 有时你只想要一些简单的东西,而且最好是免费的。 例如,如果你正在设计简单的折叠钣金零件,则只…

Linux安装filebeat

相关链接 主⻚: https://www.elastic.co/cn/products/beats/filebeat 下载: wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.1-linux-x86_64.tar.gz 百度云链接:https://pan.baidu.com/s/1MLshk_VyZZTmKhZvlS…

基于SpringBoot的一套强大后台管理系统

概述 一个功能强大而完善的后台管理系统框架,用户可基于此框架进行二次开发,定制成符合自己的需求的后台管理系统! 详细 运行截图: 项目结构: 详细说明: 环境说明: jdk1.8mavenMySQL5.7 项…

Vue框架--Vue过滤器

下面,我们一起来看看Vue中的过滤器。 过滤器: 定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)。 语法: 1.注册过滤器:Vue.filter(name,callback) 或 ne…

分享一个springboot+uniapp开发的线上马拉松报名小程序源码 lw 调试

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

【史上最硬核分享】Docker+jenkinsPipeline 运行实现 python 自动化(超详细)

一、实现思路 在 Linux 服务器安装 docker创建 jenkins 容器jenkins 中创建 pipeline 项目根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目执行完成之后删除容器 二、环境准备 Linu…

HUAWEI华为笔记本MateBook 14 I5 独显(KLV-W19)原装出厂Windows10系统1809

华为原厂Windows10系统,自带指纹、声卡、显卡等所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、华为电脑管家等预装程序 链接:https://pan.baidu.com/s/1ylRh1RmZU0S67ayGip8bpw?pwds34v 提取码:s34v

数据库被攻击需要注意什么

没想到自己用了一个简单的腾讯虚拟机,里面自己安装了一个 MySQL 数据库也会被黑客攻击。 一、问题现象 小程序访问不了,后台程序报数据库相关的错误。 查看数据库,发现数据库被篡改。 二、问题原因 1、为了可以远程能够访问数据库&#xf…

是时候重视官网了,寄生平台的生意表达,就是在给平台打工

B2C在国外80%在官网成交,20%在电商平台;在中国刚好反过来,99%在电商及社交平台,也许只有1%在官网,导致大量的利润都交给平台,换句话说,就是给平台打工。 “要改变普遍不重视官网的认知&#xf…

在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境

目录 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境一 Fyne 和 MSYS2简介1.1 Fyne1.2 MSYS2 二 安装 MSYS22.1 下载MSYS22.2 安装2.3 环境变量设置2.4 检测安装环境 三 参考文档 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发…

锐捷交换机vlan隔离(wifi段仅能访问外网,不能访问内网)

因为公司的wifi段,未做隔离,无意间上了网,发现能访问内网网段,这里内网是10、20段,管理网段是100段,于是做了和内网的vlan隔离。 拓朴如下,所有vlan的网关都起在核心上,所有交换机通…

SpringMVC----自定义注解

目录 自定义注解 是什么 作用 JDK元注解 测试案列 案例一(获取类与方法上的注解值) 案例二(获取类属性上的注解属性值) 案例三(获取参数修饰注解对应的属性值) 五.Aop自定义注解的应用 Mylog…

面试题三:请你谈一谈Vue中的filter功能的实现

Vue中过滤器(filter)的使用 我们想一下有methods为什么要有filter的存在呢,因为filter的实现效率比methods要高的多。 看一下官方定义: Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号…

常见知识蒸馏方法总结记录

蒸馏(Knowledge Distillation)是一种将一个模型(通常称为教师模型)学习到的知识迁移到另一个模型(通常称为学生模型)的技术。通常,教师模型是一个复杂而准确的模型,而学生模型则是一…

ABB PU515A 3BSE032401R1 自动化控制模块

ABB PU515A 3BSE032401R1 是一种自动化控制模块,通常用于工业自动化和控制系统中,以支持各种控制和监测任务。以下是可能适用于ABB PU515A 3BSE032401R1 自动化控制模块的一些常见产品特点: 多通道控制: PU515A 通常具有多个输入和…

基于5G网络的智能车间MES设计方案

导读 在数字化转型建设过程中,机械制造企业的难点是智能车间的设计。随着5G技术的发展,大量的带网络接口的智能设备的投入使用,智能车间的实施成为可能。本文从车间生产计划调度、过程管控、设备管理、质量管理、能耗管理和物流仓储等方面提…

【JAVA】关于重写(Override)与重载(Overload)

个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言方法重载(Overload)重载的规则示例代码方法重写(Override)重写的规则示例代码方法重载与方法重写的区别 前言 关于JAVA&…

LabVIEW使用PID对激振器控制

LabVIEW使用PID对激振器控制 LabVIEW的PID在许多项目中都会用到,比如温度控制、压力控制、流量控制等,一般用自带的PID通过调节参数的值,基本上都可以解决。现在项目的情况是,通过正弦波的输出控制激振器,输出正弦波的…

【JUC系列-06】深入理解Semaphore底层原理和基本使用

JUC系列整体栏目 内容链接地址【一】深入理解JMM内存模型的底层实现原理https://zhenghuisheng.blog.csdn.net/article/details/132400429【二】深入理解CAS底层原理和基本使用https://blog.csdn.net/zhenghuishengq/article/details/132478786【三】熟练掌握Atomic原子系列基本…

前端实现符合Promise/A+规范的Promise

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 介绍: Promise/A规范简介 1. Promise的三种状态: 2. 状态转换: 3. Promise的…