基于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制作刷网页流量工具
Apr 23 Python
Django 导出 Excel 代码的实例详解
Aug 11 Python
python+selenium识别验证码并登录的示例代码
Dec 21 Python
Python实现连接postgresql数据库的方法分析
Dec 27 Python
Python3处理HTTP请求的实例
May 10 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
python实现求特征选择的信息增益
Dec 18 Python
pytorch 自定义数据集加载方法
Aug 18 Python
python 3.7.4 安装 opencv的教程
Oct 10 Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 Python
利用Python绘制Jazz网络图的例子
Nov 21 Python
Python如何实现小程序 无限求和平均
Feb 18 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
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP $_FILES函数详解
2011/03/09 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
Python多层装饰器用法实例分析
2018/02/09 Python
深入理解Django-Signals信号量
2019/02/19 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
python中JWT用户认证的实现
2020/05/18 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
设计模式的基本要素是什么
2014/04/21 面试题
如何用JQuery进行表单验证
2013/05/29 面试题
介绍一下UNIX启动过程
2013/11/14 面试题
监察建议书范文
2014/03/12 职场文书
个人债务授权委托书
2014/10/17 职场文书
2015年化验室工作总结
2015/04/23 职场文书
创业计划书之甜品店
2019/09/18 职场文书