基于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利用标准库如何获取本地IP示例详解
Nov 01 Python
python用户管理系统
Mar 13 Python
Python使用 Beanstalkd 做异步任务处理的方法
Apr 24 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
使用Python OpenCV为CNN增加图像样本的实现
Jun 10 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
使用Python实现牛顿法求极值
Feb 10 Python
python和php哪个更适合写爬虫
Jun 22 Python
Python字符串函数strip()原理及用法详解
Jul 23 Python
Python 无限级分类树状结构生成算法的实现
Jan 21 Python
如何用用Python将地址标记在地图上
Feb 07 Python
python实现简单石头剪刀布游戏
Oct 24 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数组操作
2011/12/30 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
python检查URL是否正常访问的小技巧
2017/02/25 Python
python中logging库的使用总结
2017/10/18 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
5.1手机促销活动
2014/01/17 职场文书
面试后感谢信怎么写
2014/02/01 职场文书
村容村貌整治方案
2014/05/21 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
2015年教师新年寄语
2014/12/08 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
mysqldump进行数据备份详解
2022/07/15 MySQL