基于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中os模块详解
Oct 14 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
详解python里的命名规范
Jul 16 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
May 23 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
使用python+poco+夜神模拟器进行自动化测试实例
Apr 23 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
Python更改pip镜像源的方法示例
Dec 01 Python
Windows安装Anaconda3的方法及使用过程详解
Jun 11 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生成静态HTML速度快类库
2007/03/18 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
php格式化时间戳
2016/12/17 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
js的event详解。
2006/09/06 Javascript
Cookie 小记
2010/04/01 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
Python下载懒人图库JavaScript特效
2015/05/28 Python
PyQt5每天必学之组合框
2018/04/20 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
大学生个人总结的自我评价
2013/10/05 职场文书
创业大赛策划书
2014/03/01 职场文书
保安2014年终工作总结
2014/12/06 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis