Pytorch学习之torch用法----比较操作(Comparison Ops)


Posted in Python onJune 28, 2020

1. torch.eq(input, other, out=None)

说明: 比较元素是否相等,第二个参数可以是一个数,或者是第一个参数同类型形状的张量

参数:

input(Tensor) ---- 待比较张量

other(Tenosr or float) ---- 比较张量或者数

out(Tensor,可选的) ---- 输出张量

返回值: 一个torch.ByteTensor张量,包含了每个位置的比较结果(相等为1,不等为0)

>>> a = torch.Tensor([[1, 2], [3, 4]])
>>> b = torch.Tensor([[1, 1], [4, 4]])
>>> torch.eq(a, b)
tensor([[1, 0],
  [0, 1]], dtype=torch.uint8)

2. torch.equal(tensor1, tensor2, out=None)

说明: 如果两个张量有相同的形状和元素值,则返回true,否则False

参数:

tensor1(Tenosr) ---- 比较张量1

tensor2(Tensor) ---- 比较张量2

out(Tensor,可选的) ---- 输出张量

>>> a = torch.Tensor([1, 2])
>>> b = torch.Tensor([1, 2])
>>> torch.equal(a, b)
True

3. torch.ge(input, other, out=None)

说明: 逐元素比较input和other,即是否input >= other。

参数:

input(Tensor) ---- 待对比的张量

other(Tensor or float) ---- 对比的张量或float值

out(Tensor,可选的) ---- 输出张量,

>>> a = torch.Tensor([[1, 2], [3, 4]])
>>> b = torch.Tensor([[1, 1], [4, 4]])
>>> torch.ge(a, b)
tensor([[1, 1],
  [0, 1]], dtype=torch.uint8)

4. torch.gt(input, other, out=None)

说明: 逐元素比较input和other,即是否input > other

参数:

input(Tensor) ---- 要对比的张量

other(Tensor or float) ---- 要对比的张量或float值

out(Tensor,可选的) ---- 输出张量

>>> a = torch.Tensor([[1, 2], [3, 4]])
>>> b = torch.Tensor([[1, 1], [4, 4]])
>>> torch.gt(a, b)
tensor([[0, 1],
  [0, 0]], dtype=torch.uint8)

5. torch.kthvalue(input, k, dim=None, out=None)

说明: 取输入张量input指定维度上第k个最小值。如果不指定dim。默认为最后一维。返回一个元组(value, indices), 其中indices是原始输入张量中沿dim维的第k个最小值下标。

参数:

input(Tensor) ---- 要对比的张量

k(int) ---- 第k个最小值

dim(int, 可选的) ---- 沿着此维度进行排序

out(tuple,可选的) ---- 输出元组

>>> x = torch.arange(1, 6)
>>> x
tensor([1, 2, 3, 4, 5])
>>> torch.kthvalue(x, 4)
torch.return_types.kthvalue(
values=tensor(4),
indices=tensor(3))
>>> torch.kthvalue(x, 1)
torch.return_types.kthvalue(
values=tensor(1),
indices=tensor(0))

6. torch.le(input, other, out=None)

说明: 逐元素比较input和other,即是否input <= other.

参数:

input(Tenosr) ---- 要对比的张量

other(Tensor or float) ---- 对比的张量或float值

out(Tensor,可选的) ---- 输出张量

>>> a = torch.Tensor([[1, 2], [3, 4]])
>>> b = torch.Tensor([[1, 1], [4, 4]])
>>> torch.le(a, b)
tensor([[1, 0],
  [1, 1]], dtype=torch.uint8)

7. torch.lt(input, other, out=None)

说明: 逐元素比较input和other,即是否input < other

参数:

input(Tensor) ---- 要对比的张量

other(Tensor or float) ---- 对比的张量或float值

out(Tensor,可选的) ---- 输出张量

>>> a = torch.Tensor([[1, 2], [3, 4]])
>>> b = torch.Tensor([[1, 1], [4, 4]])
>>> torch.lt(a, b)
tensor([[0, 0],
  [1, 0]], dtype=torch.uint8)

8. torch.max(input)

说明: 返回输入张量所有元素的最大值

参数:

input(Tensor) ---- 输入张量

>>> a = torch.randn(1, 3)
>>> a
tensor([[ 0.1553, -0.4140, 1.8393]])
>>> torch.max(a)
tensor(1.8393)

9. torch.max(input, dim, max=None, max_indices=None)

说明: 返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引。

参数:

input(Tensor) ---- 输入张量

dim(int) ---- 指定的维度

max(Tensor,可选的) ---- 结果张量,包含给定维度上的最大值

max_indices(LongTensor,可选的) ---- 结果张量,包含给定维度上每个最大值的位置的索引。

>>> a = torch.randn(4, 4)
>>> a
tensor([[ 0.4067, -0.7722, -0.6560, -0.9621],
  [-0.8754, 0.0282, -0.7947, -0.1870],
  [ 0.4300, 0.5444, 0.3180, 1.2647],
  [ 0.0775, 0.5886, 0.1662, 0.8986]])
>>> torch.max(a, 1)
torch.return_types.max(
values=tensor([0.4067, 0.0282, 1.2647, 0.8986]),
indices=tensor([0, 1, 3, 3]))

10. torch.max(input, other, out=None)

说明: 返回两个元素的最大值。

参数:

input(Tensor) ---- 待比较张量

other(Tensor) ---- 比较张量

out(Tensor,可选的) ---- 结果张量

>>> a = torch.randn(4)
>>> a
tensor([ 0.5767, -1.0841, -0.0942, -0.9405])
>>> b = torch.randn(4)
>>> b
tensor([-0.6375, 1.4165, 0.2738, -0.8996])
>>> torch.max(a, b)
tensor([ 0.5767, 1.4165, 0.2738, -0.8996])

11.torch.min(input)

说明: 返回输入张量所有元素的最小值

参数:

input(Tensor) ---- 输入张量

>>> a = torch.randn(1, 4)
>>> a
tensor([[-0.8142, -0.9847, -0.3637, 0.5191]])
>>> torch.min(a)
tensor(-0.9847)

12. torch.min(input, dim, min=None, min_indices=None)

说明: 返回输入张量给定维度上每行的最小值,并同时返回每个最小值的位置索引

参数:

input(Tensor) ---- 输入张量

dim(int) ---- 指定的维度

min(Tensor,可选的) ---- 结果张量,包含给定维度上的最小值

min_indices(LongTensor,可选的) ---- 结果张量,包含给定维度上每个最小值的位置索引。

>>> a = torch.randn(4, 4)
>>> a
tensor([[-0.0243, -0.7382, 0.3102, 0.9720],
  [-0.3805, -0.7999, -1.2856, 0.2657],
  [-1.0284, -0.1638, -0.8840, 1.2679],
  [-1.0347, -2.3428, 0.3107, 1.0575]])
>>> torch.min(a, 1)
torch.return_types.min(
values=tensor([-0.7382, -1.2856, -1.0284, -2.3428]),
indices=tensor([1, 2, 0, 1]))

13. torch.ne(input, other, out=None)

说明: 逐元素比较input和other,即是否input 不等于 other。第二个参数可以为一个数或与第一个参数相同形状和类型的张量

参数:

input(Tensor) ---- 待对比的张量

other(Tensor or float) ---- 对比的张量或float值

out(Tensor, 可选的) ---- 输出张量

** 返回值:** 一个torch.ByteTensor 张量,包含了每个位置的比较结果,如果tensor和other不相等为True,返回1.

>>> import torch
>>> a = torch.Tensor([[1, 2], [3, 4]])
>>> b = torch.Tensor([[1, 1], [4, 4]])
>>> torch.ne(a, b)
tensor([[0, 1],
  [1, 0]], dtype=torch.uint8)

14. torch.sort(input, dim=None, descending=False, out=None)

说明: 对输入张量input沿指定维度按升序排序,如果不给定dim,则默认为输入的最后一维。如果指定参数descending为True,则按降序排序。

参数:

input(Tensor) ---- 要排序的张量

dim(int,可选的) ---- 沿着此维度排序

descending(bool,可选的) ---- 布尔值,控制升序排序

out(tuple,可选的) ---- 输出张量

返回值: 为ByteTensor类型或与tensor相同类型,为元组(sorted_tensor,sorted_indices),sorted_indices为原始输入中的下标

>>> x = torch.randn(3, 4)
>>> x
tensor([[-0.3613, -0.2583, -0.4276, -1.3106],
  [-1.1577, -0.7505, 1.7217, -0.6247],
  [-0.1338, 0.4423, 0.0280, -1.4796]])
>>> sorted, indices = torch.sort(x)
>>> sorted
tensor([[-1.3106, -0.4276, -0.3613, -0.2583],
  [-1.1577, -0.7505, -0.6247, 1.7217],
  [-1.4796, -0.1338, 0.0280, 0.4423]])
>>> indices
tensor([[3, 2, 0, 1],
  [0, 1, 3, 2],
  [3, 0, 2, 1]])

15. torch.topk(input, dim=None, largest=True, sorted=True, out=None)

说明: 沿指定dim维度返回输入张量input中k个最大值。如果不指定dim,则默认input的最后一维,如果largest为False,则返回最小的k个值。

参数:

input(Tensor) ---- 输入张量

k(int) ---- “top-k"中的k值

dim(int,可选的) ---- 排序的维度

largest(bool,可选的) ---- 布尔值,控制返回最大或最小值

sorted(bool,可选的) ---- 布尔值,控制返回值是否排序

out(tuple,可选的) ---- 可选输出张量

返回值: 返回一个元组(values, indices),其中indices是原始输入张量input中排序元素下标。如果设定布尔值sorted为True,将会确保返回的k个值被排序

>>> x = torch.arange(1, 6)
>>> x
tensor([1, 2, 3, 4, 5])
>>> torch.topk(x, 3)
torch.return_types.topk(
values=tensor([5, 4, 3]),
indices=tensor([4, 3, 2]))
>>> torch.topk(x, 3, 0, largest=False)
torch.return_types.topk(
values=tensor([1, 2, 3]),
indices=tensor([0, 1, 2]))

以上这篇Pytorch学习之torch用法----比较操作(Comparison Ops)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python urlopen()函数 示例分享
Jun 12 Python
python中字典dict常用操作方法实例总结
Apr 04 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
解决python3中cv2读取中文路径的问题
Dec 05 Python
Django框架组成结构、基本概念与文件功能分析
Jul 30 Python
python中sort和sorted排序的实例方法
Aug 26 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
python中的unittest框架实例详解
Feb 05 Python
Python 数据科学 Matplotlib图库详解
Jul 07 Python
利用python实时刷新基金估值(摸鱼小工具)
Sep 15 Python
PyTorch的torch.cat用法
Jun 28 #Python
使用pytorch 筛选出一定范围的值
Jun 28 #Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 #Python
pytorch 常用函数 max ,eq说明
Jun 28 #Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 #Python
Python turtle库的画笔控制说明
Jun 28 #Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 #Python
You might like
社区(php&amp;&amp;mysql)三
2006/10/09 PHP
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
应用电子专业学生的自我评价
2013/10/16 职场文书
后勤主管工作职责
2013/12/07 职场文书
教师简历自我评价
2014/02/03 职场文书
写给老婆的检讨书
2014/02/21 职场文书
爱护草坪标语
2014/06/24 职场文书
2014年党建工作总结
2014/11/11 职场文书
个人自荐书怎么写
2015/03/26 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle