pytorch基操04-比较运算符

深度学习模型训练完之后预测的数据差不多(模型预测输出数据一样)(训练结果一样) 模型训练之后预测的数据内容差不多,第一种可能性是你模型有问题,这种先不谈 第二种可能性是某一种数据的分布过多造成数据分布不均匀,比如你的数据集之中特别多的类别0,1,2,3,此时如果数据集中某一类别数量特别多,比如类别0特别多,这种分布不均匀的现象就有可能导致最后预测出来的结果都差不多。 ... 阅读详情

1 torch中的比较运算符

为了演示不同比较运算符的作用,先初始化两个tensor a和b。

# 创建a,b tensor并用均值为20,方差为10的高斯分布采样赋值
a=torch.empty(size=(2,2)).normal_(20,10).floor_() # floor 向下取整
b=torch.empty(size=(2,2)).normal_(20,10).floor_()
a[0,0],b[0,0]=10,10 # 强制修改[0,0]位置元素相同
a:
 tensor([[10., 24.],
        [ 9., 22.]])
b:
 tensor([[10., 25.],
        [22., 26.]])

1.1 torch.equal

equal方法只有当a和b形状元素值都相等才返回True。

print('equal:',torch.equal(a,b))

这里除了[0,0]位置其他元素都不相同,因此返回False.

equal: False

1.2 torch.equal

# a==b
print('eq:',torch.eq(a,b))
eq: tensor([[ True, False],
        [False, False]])

1.3 torch.gt

# a > b , gt=Greater Than
print('a>b:',torch.gt(a,b))

每个a的元素都小于等于在b对应位置的元素,因此都返回False。

a>b: tensor([[False, False],
        [False, False]])

1.4 torch.ge

# a>=b , ge=Greater than or Equal to
print('a>=b:',torch.ge(a,b))
a>=b: tensor([[ True, False],
        [False, False]])

1.5 torch.lt

# a<b , lt=Less Than
print('a<b:',torch.lt(a,b))
a<b: tensor([[False,  True],
        [ True,  True]])

1.6 torch.le

# a<=b , le=Less than or Equal to
print('a<=b:',torch.le(a,b))
a<=b: tensor([[True, True],
        [True, True]])

1.7 torch.ne

# a!=b , ne=Not Equal
print('ne:',torch.ne(a,b))
ne: tensor([[False,  True],
        [ True,  True]])

1.8 torch.sort

创建用于排序的张量。

print('\n'+'-'*8+'排序'+'-'*8+'\n')
a=torch.empty(size=(2,5)).normal_(20,10).floor_()
print('a:',a)
print('b:',b)
a: tensor([[28., 17., 18., 16., 19.],
        [44., 30., 10.,  9., 29.]])

排序操作,返回排序后的张量,以及排序后的原元素的索引。此处沿着维度1进行排序。

# torch.sort
print('-'*8+'sort'+'-'*8)
a_sort,a_idx=torch.sort(a,dim=1)
print('a_sort:\n',a_sort)
print('idx_sort:\n',a_idx)
--------sort--------
a_sort:
 tensor([[ 3.,  5.,  8., 12., 22.],
        [-3.,  7., 19., 33., 33.]])
idx_sort:
 tensor([[3, 2, 0, 4, 1],
        [4, 1, 2, 0, 3]])

1.9 torch.topk

topk可以获取对应维度上,topk大或者topk小的元素。还是使用上上面的a作为例子。

# torch.topk 前k大个元素
print('-'*8+'topk'+'-'*8)
topk_res=torch.topk(a,dim=1,k=2,largest=True)
print(topk_res)

可以看到,维度1上最大的两个元素为(22,12)和(33,33)。

a: tensor([[ 8., 22.,  5.,  3., 12.],
        [33.,  7., 19., 33., -3.]])
--------topk--------
torch.return_types.topk(
values=tensor([[22., 12.],
        [33., 33.]]),
indices=tensor([[1, 4],
        [0, 3]]))

1.10 torch.kthvalue

kthvalue可以获取在指定维度上第k小的元素,只返回一个元素,且只能是第k小的(大的也不行)。

# torch.kthvalue
# get the k-th smallest values 第k小的元素
print('-'*8+'kthvalue'+'-'*8)
print(torch.kthvalue(a,k=3,dim=1))
a: tensor([[ 8., 22.,  5.,  3., 12.],
        [33.,  7., 19., 33., -3.]])

torch.return_types.kthvalue(
values=tensor([ 8., 19.]),
indices=tensor([0, 2]))

1.11 torch.isinf

isinf用于判断元素是否是无界的,这里故意除以0来制造无界的元素。

# torch.isinf 是否无界
print(torch.isinf(a/0))
tensor([[True, True, True, True, True],
        [True, True, True, True, True]])

1.12 torch.isfinite

isfinite用于判断是否有界。

# 是否有界
print(torch.isfinite(a/0))
tensor([[False, False, False, False, False],
        [False, False, False, False, False]])

1.13 torch.nan

# 是否是nan
a[0,0]=np.NAN
print(torch.isnan(a))
tensor([[ True, False, False, False, False],
        [False, False, False, False, False]])
PyTorch文本:04.深度学习NLP中使用Pytorch 一、使用PyTorch进行深度学习 1.深度学习构建模块:仿射变换, 非线性函数以及目标函数 深度学习表现为使用更巧妙的方法将线性函数和非线性函数进行组合。非线性函数的引入使得训练出来的模型更加强大。在本节中,我们将学 习这些核心组件,建立目标函数,并理解模型是如何构建的。 1.1 仿射变换 PyTorch以及大多数的深度学习框架所做的事情都与传统的线性代数有些不同。它的映射输入是行而不是列。也就是说,下面代码输出的第i行 是输入的第i行进行A变换,并加上偏移项的结果。看下面的例子: # Aut 阅读详情

相关推荐

Ubuntu20.04下Python3.8与PyTorch1.12.1的完美搭配:从下载到验证的全流程指南

本文详细介绍了在Ubuntu20.04系统下配置Python3.8与PyTorch1.12.1的全流程指南,包括版本选择策略、安装步骤、环境验证及性能优化建议。通过具体代码示例和问题排查方法,帮助开发者快速搭建稳定的深度学习开发环境,特别适合需要长期支持的项目。

weixin_29067143的博客 406

PyTorch学习笔记之基础函数篇(十五)

torch.ne() 是 PyTorch 中的一个函数,用于逐元素地比较两个张量(tensors),并返回一个布尔值张量(boolean tensor),其中每个元素表示对应位置上的第一个张量中的元素是否不等于第二个张量中的元素。torch.gt() 是 PyTorch 中的一个函数,用于逐元素地比较两个张量(tensors),并返回一个布尔值张量(boolean tensor),其中每个元素表示对应位置上的第一个张量中的元素是否大于第二个张量中的元素。

记录学习过程 2169

DINO-ubuntu20.04-单机多卡,训练自己的数据集

环境: 2、下载代码 二、环境配置 1、创建新环境 2、安装torch 在pytorch.org上找到合适自己cuda版本的pytorch安装即可,建议同源代码一样安装 检查torch安装 3、安装依赖包 4、编译CUDA operators 执行 test.py 后出现 out of memory是正常现象,到这里配置环境就over了/config/DINO/DINO_4scale.py 中进行修改,复制一份,方便管理,以免搞错! 2、下载预训练模型 预训练模型权重文件 andthe checkp

weixin_43731232的博客 1325

Pytorch学习记录(二)常用函数整理

torch.max(input, dim)函数 output = torch.max(input, dim) 输入: input参数是softmax函数输出的一个tensor dim是max函数索引的维度(0/1),0求每列最大值,1求每行最大值 输出: 函数会返回两个tensor,第一个tensor为每行的最大值;第二个tensor是每行最大值的索引 分类问题中标签匹配问题 直接对标签tensor使用 == 操作即可对张量中每个元素进行比较 返回值是一个一维张量值相同为True,反之为.

艾渃曼の博客 928

【pytorch】op的c++和cuda编写

【pytorch】op的c++和cuda编写(一) 官方文档 需求:当你需要频繁的使用该自定义操作,或者调用很昂贵,或者需该操作要用到一些c/c++库。 c++扩展允许用户创建源外定义的PyTorch运算符,即与PyTorch后端分离的运算符。 c++扩展有两种形式: 使用setuptools提前构建 使用torch.utils.cpp_extension.load()即使构建 setuptools构建 写setup.py来让setuptools编译c++代码 from setuptools imp

Hana 1119

在PLC中将十六进制数据转换为浮点数(通常遵循IEEE 754标准)需要理解数据存储格式,并按以下步骤操作:

通过以上步骤,您可以在PLC中实现十六进制到浮点数的转换。T DBD20 // 将数据传送到浮点数变量(如DB1.DBD20)指数位(8位):实际指数 = 存储值 - 127(偏移量)。:必须确认PLC的存储顺序(大端或小端),否则结果错误。将两个16位寄存器合并为32位数据,需注意。尾数位(23位):隐含前导1,实际值为。:确保32位数据在寄存器中连续且对齐。符号位(1位):0表示正,1表示负。:高位寄存器在前(如西门子PLC)。:低位寄存器在前(如三菱FX系列)。,误差因截断导致)。

K11mvp的博客 4416

Pytorch之torch.equal()语法、参数和实际应用案例

`torch.equal`是PyTorch里的一个函数,其主要功能是判断两个张量是否完全一样。

王国平的博客 867

手把手教你用TJA1145A实现CAN节点智能唤醒(含数据帧过滤技巧)

本文详细介绍了如何使用TJA1145A收发器实现CAN节点的智能唤醒功能,包括数据帧过滤技巧和超低功耗设计。通过硬件级帧过滤和双条件唤醒机制,TJA1145A在保持微安级休眠电流的同时,能对特定报文做出毫秒级响应,显著提升电池供电设备的续航能力。

weixin_28721917的博客 249

torch.equal(input, other)和equal(other)使用举例

参考链接: equal(other) → bool 参考链接: torch.equal(input, other) → bool

敲代码的小风 1268

AI工程化之生成式UI & A2UI(一)

本文系统介绍了生成式UI和Google A2UI技术。生成式UI通过AI直接生成前端代码(完全生成式)或DSL(混合式),实现千人千面的动态界面和研发提效。Google A2UI提出组件级和消息级协议,采用JSON规范实现渲染框架解耦,支持多端渲染。文章详细阐述了A2UI的架构设计,包括协议生成、服务端处理和渲染器实现,并对比了与传统前端框架的差异,指出A2UI本质是UI=F(AI(UI)+AI(state))的创新模式。最后通过playground项目展示了A2UI的实践应用。

qq_34306228的博客 588

Abaqus滞回问题求解—浆锚连接装配式剪力墙滞回模拟

当下土木工程研究生,多数都在从事装配式混凝土构件安全或装配式混凝土构件连接节点力学性能的研究。研究这类问题,几乎脱离不开对有限元软件的使用,Abaqus求解能力非常强大,但模型处理能力相对较弱。装配式混凝土结构的有限元计算与传统现浇结构相比,其节点处理起来相对复杂,计算结果往往需要凸显出连接节点力学特性,所以对建模精程度的要求较高。所以向大家介绍一款工具—HyperMesh软件(一下简称Hm),它是专业的有限元前处理工具,用于处理装配式混凝土构件或连接节点有限元模型比较合适。这篇文章主要介绍如何利用Hm处理

qq_31918049的博客 2900

Ubuntu20.04下基于Python3.8的PyTorch安装与验证指南

本文详细介绍了在Ubuntu 20.04系统上,基于Python 3.8环境安装和验证PyTorch的完整流程。通过手动下载官方预编译包进行本地安装,有效避免了网络问题,并提供了从环境确认、包选择、安装到三步验证法的全步骤指南,确保深度学习开发环境稳定可用。

ujm56789012的博客 405

26、机器学习模型的成员推断攻击与隐私保护

本文探讨了机器学习模型面临的成员推断攻击及其对隐私的潜在威胁。通过使用CIFAR-10数据集,详细介绍了如何利用影子模型和攻击模型推断特定数据点是否属于模型的训练集。实验表明,即使无法直接访问模型参数和原始数据,攻击者仍能以高于随机猜测的概率进行推断,从而构成隐私风险。此外,文章还分析了实验的关键技术点,并提出了多种隐私保护建议,包括数据脱敏、差分隐私、模型正则化等方法。

coffee的博客 123

Ubuntu 20.04 安装 Miniconda:科学计算环境快速搭建指南

Python 环境管理是数据科学与AI开发的基础能力,其核心在于解决依赖冲突、版本隔离与跨平台复现三大难题。conda 作为专为科学计算设计的包与环境管理工具,通过二进制预编译、多语言支持(Python/R/C++)和声明式环境定义,显著优于 pip+venv 的纯 Python 方案。在 Ubuntu 20.04 这一广泛使用的 LTS 系统中,GLIBC 2.31 兼容性、APT 与 pip 权限冲突、CUDA 驱动适配等现实约束,使 Miniconda(轻量 conda 发行版)配合 conda-fo

weixin_33698823的博客 473

OceanBase容量统计:租户、数据库、表大小

🍎 数据库版本:OceanBase V4。

Sebastien23的博客 1394

YOLO11全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 559

PyTorch_点积运算

点积运算要求第一个矩阵 shape:(n, m),第二个矩阵 shape: (m, p), 两个矩阵点积运算shape为:(n,p)

CHNMSCS 985

华为OD机试真题2026双机位C卷 C语言 实现【明日之星选举】

给定一组选票votes。votes[i]代表第 i 张选票的内容,包含一个字符串"zhangsan,hanmei",表示推荐zhangsan为明日之星,反对 hanmei 称为明日之星。赞成或反对使用逗号(,)分割。 给定一个数组n,表示最后将筛选出赞成票最多的n个人,如果赞成票相同,则反对票越少,排序越靠前;如果赞成票和反对票都相同,则按照姓名字典序升序排序。

MISAYAONE的博客 182

【K210实战】从PyTorch到K210:nncase-v1.9模型转换全流程与避坑指南

本文详细介绍了将PyTorch模型通过nncase-v1.9工具链转换为K210可执行.kmodel文件的全流程。重点解析了从环境配置、静态ONNX模型导出、nncase编译参数设置到运行时库版本对齐等关键步骤,并提供了完整的避坑指南,确保开发者能顺利完成边缘AI模型的部署。

fire9的博客 521

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

PyTorch静态库编译实战:从环境配置到优化部署

深度学习框架的静态库编译是模型部署中的关键技术环节。PyTorch作为主流框架,其动态图机制虽便于研发,但生产环境往往需要静态链接以获得更优性能。静态编译涉及CMake构建系统、符号解析和链接优化等核心技术,能有效解决部署时的依赖管理和性能瓶颈问题。通过合理配置MKL数学库和CUDA加速,开发者可以构建高性能的推理引擎,适用于边缘计算、嵌入式设备等资源受限场景。本文以PyTorch 1.7.0为例,详细解析CPU/GPU双版本的静态编译方法,包含MKL与Eigen后端对比、CUDA架构选择等工程实践要点,并

weixin_33882452的博客 289

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

PyTorch编程基础01--PyTorch中的张量

PyTorch是一个Python包,用于将数据封装成张量(Tensor)来进行运算。张量是向量和矩阵的推广。PyTorch中的张量就是元素为同一种数据类型的多维矩阵。

weixin_44288092的博客 987

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

李沐动手学深度学习Pytorch-v2笔记【04数据操作】

本文介绍了PyTorch中张量(tensor)的基本操作与数据处理方法。主要内容包括:张量的创建方式(如torch.arange、torch.zeros/ones)、形状操作(reshape、numel)、算术运算(按元素加减乘除)、逻辑运算、广播机制、切片索引以及内存管理(原地操作)。还展示了张量与NumPy数组的相互转换,以及将单元素张量转换为Python标量的方法。这些基础操作是深度学习数据处理的重要前提,为后续模型开发提供了必要的张量操作基础。

zj_203240104的博客 553

【笔记】EasyHPC - PyTorch入门教程

超算习堂 - PyTorch入门教程的笔记

weixin_43254181的博客 975

pytorch 正则化_【他山之石】pytorch量化备忘录

“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等,开辟“他山之石”专栏,助你乘风破浪,一路奋勇向前,敬请关注。作者:知乎—皮特潘地址:https://www.zhihu.com/people/wu-er-dong01什么是量化?将高精度运算转化到低精度上运算,例如f...

weixin_39611008的博客 238

PyTorch基本操作实验

在 TensorFlow 中执行 M - N 时,首先 Python 的减法运算符 - 会被 TensorFlow 重载。接着,TensorFlow 的核心引擎会检查两个矩阵的形状,发现它们不同但兼容,于是自动触发广播机制,在概念上将 M(1x3)和 N(2x1)都扩展成更大的 (2,3) 形状,以便进行运算。但这个过程并不会真的在内存中复制数据以节省资源。然后,这个计算任务被分派给 CPU 或 GPU 进行计算。最后,计算结果被存放在一个新创建的张量中并返回。QTQT。

m0_68856756的博客 883

04 (1)数据操作

n维数组,也称为张量(tensor)。深度学习框架又比Numpy的ndarray多一些重要功能: 首先,GPU很好地支持加速计算,而NumPy仅支持CPU计算;其次,张量类支持自动微分。这些功能使得张量类更适合深度学习。如果没有特殊说明,本章中所说的张量均指的是张量类的实例。torchtorch具有一个轴的张量对应数学上的向量(vector);具有两个轴的张量对应数学上的矩阵(matrix);具有两个轴以上的张量没有特殊的数学名称。

qq_62722472的博客 617
上一篇: pytorch基操03-取整取余操作
下一篇: Python装饰器的使用
von Libniz
博客等级 码龄8年 421粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值