基于torch.where和布尔索引的速度比较


Posted in Python onJanuary 02, 2020

我就废话不多说了,直接上代码吧!

import torch
import time
x = torch.Tensor([[1, 2, 3], [5, 5, 5], [7, 8, 9],[5,5,5],[1,2,3,],[1,2,4]])
'''
使用pytorch实现对于任意shape的torch.tensor,如果其中的element不等于5则为0,等于5则保留原数值
实现该功能的两种方式,并比较两种实现方式的速度
'''

# x[x!=5]=1
def t2(x):
  x[x!=5]=0
  return x
def t(x):
  zeros=torch.zeros(x.shape)
  # ones=torch.ones(x.shape)
  x=torch.where(x!=5,zeros,x)
  return x

t2_start=time.time()
t2=t2(x)
t2_end=time.time()

t_start=time.time()
t=t(x)
t_end=time.time()
print(t2,t)
print(torch.sum(t-t2))

print('using x[x!=5]=0 time:',t2_end-t2_start)
print('using torch.where time:',t_end-t_start)
'''
tensor([[0., 0., 0.],
    [5., 5., 5.],
    [0., 0., 0.],
    [5., 5., 5.],
    [0., 0., 0.],
    [0., 0., 0.]]) tensor([[0., 0., 0.],
    [5., 5., 5.],
    [0., 0., 0.],
    [5., 5., 5.],
    [0., 0., 0.],
    [0., 0., 0.]])
tensor(0.)
using x[x!=5]=0 time: 0.0010008811950683594
using torch.where time: 0.0

看来大神说的没错,果然是使用torch.where速度更快
 a[a!=5]=0 这种写法,速度比 torch.where 慢了超级多
'''

以上这篇基于torch.where和布尔索引的速度比较就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python读取图片EXIF信息类库介绍和使用实例
Jul 10 Python
Python通过正则表达式选取callback的方法
Jul 18 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
详解opencv Python特征检测及K-最近邻匹配
Jan 21 Python
在python中实现强制关闭线程的示例
Jan 22 Python
Pycharm配置PyQt5环境的教程
Apr 02 Python
详解查看Python解释器路径的两种方式
Oct 15 Python
Python+OpenCV检测灯光亮点的实现方法
Nov 02 Python
selenium如何定位span元素的实现
Jan 13 Python
pycharm2021激活码使用教程(永久激活亲测可用)
Mar 30 Python
Python下opencv使用hough变换检测直线与圆
Jun 18 Python
Python魔法方法 容器部方法详解
Jan 02 #Python
python 图像的离散傅立叶变换实例
Jan 02 #Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 #Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 #Python
pytorch实现onehot编码转为普通label标签
Jan 02 #Python
pytorch标签转onehot形式实例
Jan 02 #Python
Python socket聊天脚本代码实例
Jan 02 #Python
You might like
php快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
php 传值赋值与引用赋值的区别
2010/12/29 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
介绍Python的Django框架中的QuerySets
2015/04/20 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
python迭代dict的key和value的方法
2018/07/06 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
python中eval与int的区别浅析
2019/08/11 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
宿舍打麻将检讨书
2014/01/24 职场文书
教师工作总结范文2014
2014/11/10 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
同学毕业留言寄语
2015/02/27 职场文书
防卫过当辩护词
2015/05/21 职场文书
机关工会工作总结2015
2015/05/26 职场文书
少年犯观后感
2015/06/11 职场文书
公司车队管理制度
2015/08/04 职场文书
美元符号 $
2022/02/17 杂记
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android