基于torch.where和布尔索引的速度比较

 更新时间:2020年5月2日 10:15  点击:2176

我就废话不多说了,直接上代码吧!

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和布尔索引的速度比较就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持猪先飞。

[!--infotagslink--]

相关文章

  • $i++ ++$i 运行速度与区别

    关于$i++与++$i是什么区别了,下面来看看这些区别的分别。 <?php 方式一: $begin = time(); $i = 0; while(++$i < 10000) { $j = 0; while(++$j < 10000)...2016-11-25
  • 哪款手机快充技术最快安全省心呢?全球TOP5手机快充速度对比

    目前来说,处理器芯片厂商一般都会内置快充技术方案。比如说主流的有高通家的Quick Charge 3.0、联发科的Pump Express Plus以及华为SuperCharge。哪款手机快充技术最快安全省心呢?下面为大家带来全球TOP5手机快充速度对比,来看看吧...2017-07-06
  • 用PHP在服务端合并多个JS和CSS文件减少HTTP请求,提高速度

    在Web,js,css文件会越多,那么对就增加了http请求数,解决该问题的一个好的方法就是合并js,css文件。下面就简单介绍一个方法,十分简单。本文以实现原理为主,代码可能会...2016-11-25
  • 为啥不同品牌手机的速度和功能有差别?手机USB接口的4个真相

    手机充电靠的就是USB接口,但现阶段Android手机USB无非是Micro USB和Type-C两种形态,为啥不同品牌手机的充电速度差异很大呢?下面小编为大家揭秘手机USB接口的4个真相,来看看吧...2016-12-15
  • 基于torch.where和布尔索引的速度比较

    今天小编就为大家分享一篇基于torch.where和布尔索引的速度比较,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-02
  • 如何让python的运行速度得到提升

    在本篇文章里小编给大家分享了关于如何让python的运行速度得到提升的方法和技巧,需要的朋友们可以学习下。...2020-07-09
  • C#实现提高xml读写速度的方法

    这篇文章主要介绍了C#实现提高xml读写速度的方法,并且针对各类文件的读写做了较为细致的分析,非常实用,需要的朋友可以参考下...2020-06-25
  • 手机使用存储卡会拖慢系统的运行速度吗?

    过也有一部分网友在使用手机存储卡的过程中发现,存储卡经常会出现发热甚至发烫的情况。因此也有不少人认为手机使用存储卡会拖慢系统的运行速度,究竟是不是这样呢?下面小编就为大家介绍一下,来看看吧...2017-07-06
  • numba提升python运行速度的实例方法

    在本篇文章里小编给大家整理的是一篇关于numba提升python运行速度的实例方法,有兴趣的朋友们可以参考下。...2021-01-26
  • 只需要这一行代码就能让python计算速度提高十倍

    今天教大家一个小方法,只需要这一行代码就能让python计算速度提高十倍,文中介绍的非常详细,对正在学习python的小伙伴有很好的帮助,需要的朋友可以参考下...2021-05-24
  • 如何优化网页下载速度

    如何优化网页下载速度 浏览器解析 js 跟 css 他是不用看空行,回车,制表符的。但是一个js跟css文件空行,转行跟制表符却占用一个文件起码15%的体积,美其名曰:缩进。比如 glo...2016-10-10
  • 华为P8连上WiFi上网速度很慢的有效解决方法详细介绍 [适用于所有华为手机]

    华为的花粉在使用手机的时候基本都遇到过运营商网络不好的情况,而另一个问题是,不管是在家里还是在公共场合,都会觉得wifi速度不够快,甚至上网速度慢到让人无法接受,这种情况怎么办呢?本文将提供华为P8青春版连上WiFi上网速度很慢的解决方法供大家了解...2016-07-04
  • MySQL以速度为目标

    MySQL以速度为目标 -------------------------------------------------------------------------------- MySQL和PostgreSQL都是非常著名的数据库开放源码项目,而且...2016-11-25
  • 用Python实现一个打字速度测试工具来测试你的手速

    有很多小伙伴们都苦恼自己手速不够,今天特地整理了这篇文章,教你用Python实现一个打字测试工具来测试你的打字速度,文中有非常详细的代码示例,对想练手速的小伙伴们很有用哦,需要的朋友可以参考下...2021-05-28
  • 利用缓存提高访问速度

    有一个使图像下载更快的重要技术。那些在网站中重复出现的图像-比如通用标志、页首或导航条-不必一遍一遍地下载。缺省地,Netscape和InternetExplorer在RAM...2016-09-20
  • 利用ping测试你的网页速度

    当你访问一个站点时,你可能需要很长时间,这也许是网络故障,你可以利用Ping程序来测试。Ping程序是一个网络小程序,它会向Web网址的主服务器发送一个32字节的消...2016-09-20
  • 提高网页速度浏览切实可行的七个方法

    网站速度,笔者总结了一些切实可行的方法,制作主页时,以下的方法可以令你的网页速度大大提高。   一.记得帮页面减肥   我们浏览网页实际上是将虚拟主机中的网页内...2016-09-20
  • Apache限制指定格式的下载速度(httpd.conf配置)

    打开httpd.conf,去掉mod_status.so模块前面的#号注释 代码如下 复制代码 LoadModule status_module modules/mod_status.so ExtendedStatus On LoadMo...2016-01-28
  • Virtono便宜欧洲VPS主机英国伦敦机房速度、配置及综合评测体验

    本文章为各位介绍一篇Virtono便宜欧洲VPS主机英国伦敦机房速度、配置及综合评测体验的例子,希望这篇文章能够帮助到各位朋友哦。 Virtono,一家2014年...2016-10-10
  • c#测试本机sql运算速度的代码示例分享

    本文代码目的很简单,就是使用c#测试一下本机sql运算的速度,使用循环往数据里大量插入数据,计算所用时间,大家参考使用吧...2020-06-25