基于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实现360皮肤按钮控件示例
Feb 21 Python
python迭代器实例简析
Sep 25 Python
RC4文件加密的python实现方法
Jun 30 Python
Python Queue模块详细介绍及实例
Dec 27 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
Python探索之静态方法和类方法的区别详解
Oct 27 Python
Python中的引用和拷贝实例解析
Nov 14 Python
django框架ModelForm组件用法详解
Dec 11 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
Python绘制动态水球图过程详解
Jun 03 Python
matplotlib图例legend语法及设置的方法
Jul 28 Python
如何使用Pytorch搭建模型
Oct 26 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
很实用的一个完整email发送程序
2006/10/09 PHP
PHP4与PHP5的时间格式问题
2008/02/17 PHP
基于PHP生成静态页的实现方法
2013/05/10 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
5种Python单例模式的实现方式
2016/01/14 Python
python下载图片实现方法(超简单)
2017/07/21 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
Python之修改图片像素值的方法
2019/07/03 Python
python实现ip代理池功能示例
2019/07/05 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
中班上学期幼儿评语
2014/04/30 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
赞美老师的演讲稿
2014/05/22 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫