基于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使用7z解压apk包的方法
Apr 18 Python
Python实现单词拼写检查
Apr 25 Python
Python的gevent框架的入门教程
Apr 29 Python
Python中enumerate()函数编写更Pythonic的循环
Mar 06 Python
python中实现字符串翻转的方法
Jul 11 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
Python调用shell命令常用方法(4种)
May 11 Python
python实现定时发送邮件
Dec 23 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&MYSQL服务器配置说明
2006/10/09 PHP
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
PHP日期时间函数的高级应用技巧
2009/05/16 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
python计算最小优先级队列代码分享
2013/12/18 Python
Python之list对应元素求和的方法
2018/06/28 Python
解决Python一行输出不显示的问题
2018/12/03 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
蓝颜请假条
2014/04/11 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
公司给客户的感谢信
2015/01/23 职场文书
建议书范文
2015/02/05 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫