基于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 相关文章推荐
windows上安装Anaconda和python的教程详解
Mar 28 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
Python3使用SMTP发送带附件邮件
Jun 16 Python
Python的Tkinter点击按钮触发事件的例子
Jul 19 Python
python实现简单日志记录库glog的使用
Dec 13 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 Python
django自定义非主键自增字段类型详解(auto increment field)
Mar 30 Python
TensorFlow使用Graph的基本操作的实现
Apr 22 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
基于PyInstaller各参数的含义说明
Mar 04 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中array_merge与array+array的区别
2013/06/21 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
Js+XML 操作
2006/09/20 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
深入了解query和params的使用区别
2019/06/24 Javascript
python修改字典内key对应值的方法
2015/07/11 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
简单谈谈python基本数据类型
2018/09/26 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
服装创业计划书范文
2014/02/05 职场文书
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
小学毕业感言300字
2014/02/19 职场文书
工作检讨书范文
2015/01/23 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
MySQL导致索引失效的几种情况
2022/06/25 MySQL