基于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 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
为Python的web框架编写前端模版的教程
Apr 30 Python
使用Pyinstaller的最新踩坑实战记录
Nov 08 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
TensorFlow实现iris数据集线性回归
Sep 07 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
记录模型训练时loss值的变化情况
Jun 16 Python
浅析Python 多行匹配模式
Jul 24 Python
Python下载网易云歌单歌曲的示例代码
Aug 12 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 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 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
PHP输入流php://input介绍
2012/09/18 PHP
php之curl设置超时实例
2014/11/03 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
javascript每日必学之多态
2016/02/23 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
工作个人的自我评价
2014/01/14 职场文书
资料员岗位职责
2015/02/10 职场文书
汽车质检员岗位职责
2015/04/08 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
小学校本教研总结
2015/08/13 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
Python爬虫入门案例之回车桌面壁纸网美女图片采集
2021/10/16 Python
服务器间如何实现文件共享
2022/05/20 Servers
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers