基于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中函数总结之装饰器闭包详解
Jun 12 Python
Python随机读取文件实现实例
May 25 Python
Python2与python3中 for 循环语句基础与实例分析
Nov 20 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
Python开发网站目录扫描器的实现
Feb 21 Python
Python I/O与进程的详细讲解
Mar 08 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
Django如何使用jwt获取用户信息
Apr 21 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 Python
python cookie反爬处理的实现
Nov 01 Python
python中reload重载实例用法
Dec 15 Python
用Python仅20行代码编写一个简单的端口扫描器
Apr 08 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实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
js获取内联样式的方法
2015/01/27 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
JavaScript实现购物车基本功能
2017/07/21 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
Python读取图片EXIF信息类库介绍和使用实例
2014/07/10 Python
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
python中map()函数的使用方法示例
2017/09/29 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
python将字母转化为数字实例方法
2019/10/04 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
Oracle性能调优原则
2012/05/03 面试题
过程装备与控制工程专业求职信
2014/07/02 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
总经理岗位职责范本
2015/04/01 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js