基于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 随机数生成的代码的详细分析
May 15 Python
Python程序设计入门(1)基本语法简介
Jun 13 Python
使用Python编写简单网络爬虫抓取视频下载资源
Nov 04 Python
Python常用的日期时间处理方法示例
Feb 08 Python
python实现颜色空间转换程序(Tkinter)
Dec 31 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
Python使用Matplotlib实现Logos设计代码
Dec 25 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
Feb 17 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
Jun 29 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 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 zend解密软件绿色版测试可用
2008/04/14 PHP
PHP的单引号和双引号 字符串效率
2009/05/27 PHP
浅析PHP Socket技术
2013/08/02 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
2014/08/12 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
详解如何在vue-cli中使用vuex
2018/08/07 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
护士自荐信范文
2013/12/15 职场文书
产品质量承诺范本
2014/03/31 职场文书
高三家长寄语
2014/04/03 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js