基于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中的URLError异常的方法
Apr 30 Python
Python多线程爬虫简单示例
Mar 04 Python
Python3编程实现获取阿里云ECS实例及监控的方法
Aug 18 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
Oct 23 Python
python实现整数的二进制循环移位
Mar 08 Python
python实现支付宝转账接口
May 07 Python
python同步windows和linux文件
Aug 29 Python
python pycharm的安装及其使用
Oct 11 Python
pycharm显示远程图片的实现
Nov 04 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
使用python客户端访问impala的操作方式
Mar 28 Python
如何解决cmd运行python提示不是内部命令
Jul 01 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水印
2007/03/16 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
js href的用法
2010/05/13 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
echarts整合多个类似option的方法实例
2018/07/10 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
python操作mysql数据库
2017/03/05 Python
Python之文字转图片方法
2018/05/10 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
Python代码需要缩进吗
2020/07/01 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
网上快餐厅创业计划书
2014/02/01 职场文书
大班亲子运动会方案
2014/06/10 职场文书
教师工作表现自我评价
2015/03/05 职场文书
公司内部升职自荐信
2015/03/27 职场文书
商务司机岗位职责
2015/04/10 职场文书
会计做账心得体会
2016/01/22 职场文书
销售会议开幕词
2016/03/04 职场文书
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
Python各协议下socket黏包问题原理
2022/04/12 Python