基于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之编写类之三子类
Oct 11 Python
在Django的form中使用CSS进行设计的方法
Jul 18 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
Python格式化输出字符串方法小结【%与format】
Oct 29 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
Apache,wsgi,django 程序部署配置方法详解
Jul 01 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
Nov 07 Python
python logging 日志的级别调整方式
Feb 21 Python
python + selenium 刷B站播放量的实例代码
Jun 12 Python
Python 使用生成器代替线程的方法
Aug 04 Python
python实现MD5进行文件去重的示例代码
Jul 09 Python
关于python中模块和重载的问题
Nov 02 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
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
js判断密码强度的方法
2020/03/18 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
初步讲解Python中的元组概念
2015/05/21 Python
Python实现的计数排序算法示例
2017/11/29 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
Python字符串的常见操作实例小结
2019/04/08 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
python实现的Iou与Giou代码
2020/01/18 Python
python构造函数init实例方法解析
2020/01/19 Python
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书