基于torch.where和布尔索引的速度比较
作者:WYXHAHAHA123 发布时间:2021-10-07 16:20:54
标签:torch.where,布尔索引,速度
我就废话不多说了,直接上代码吧!
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 慢了超级多
'''
来源:https://blog.csdn.net/WYXHAHAHA123/article/details/88206801


猜你喜欢
- 一、概述索引太少,查询效率低;索引太多程序性能受到影响,索引的使用应该贴合实际情况。Innodb 支持的索引包括:全文检索,使用倒排索引哈希
- 本文实例讲述了Python列表原理与用法。分享给大家供大家参考,具体如下:列表的基本认识列表简介列表的创建基本语法[]创建list()创建r
- 一、安装Bautiful Soup 是第三方库,因此需要单独下载,下载方式非常简单由于 BS4 解析页面时需要依赖文档解析器,所以还需要安装
- 做一个简单WPF连接数据库的控件类型和名称:DataGrid:dataGrid &
- Python 数据库编程,ODBC方式实现通讯录,供大家参考,具体内容如下#-*-coding:utf-8-*-import pyodbci
- 静态数据类型静态数据类型是指不可以对该数据类型进行修改,即只读的数据类型。迄今为止学过的静态数据类型有字符串,元组。在使用[]操作符对字符串
- 我就废话不多说了,大家还是直接看代码吧!cmd.py# -*- coding: utf-8 -*-from PySide import Qt
- JDBC之C3P0数据库连接池,供大家参考,具体内容如下1 首先在src中创建c3p0-config.xml 配置文件,文件中内容如下(首先
- 本文为大家分享了JS组件Form表单验证神器BootstrapValidator,供大家参考,具体内容如下1、初级用法来看bootstrap
- 弹出窗口,加载页面。弹出窗口初始位置为居中。可在关闭窗口时,回调主页面按钮。要求jquery。效果演示首先,演示主窗口两个按钮作用。然后,演
- 本文实例讲述了PHP实现二维数组中的查找算法。分享给大家供大家参考,具体如下:方法1:silu从左下角最后一行的第一个元素开始,遍历。如果小
- 大家好~ 老Amy来啦!已经n久没有给大家输出关于办公自动化的文章了…为什么呢?罗列原因:太忙!(被领导“压榨”)太忙!(没有额外的精力揣测
- 目录sync.Cond 可以用来干什么?与 Sync.Mutex 的区别sync.Cond 使用场景sync.Condsync.Cond 有
- PDOStatement::columnCountPDOStatement::columnCount — 返回结果集中的列数。(PHP 5
- 1.Mysql中的数据类型varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100)ch
- 在asp中利用excel的一个方法是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似.但是这个方法不是总能有
- 本文实例为大家分享了python抖音表白程序的具体代码,供大家参考,具体内容如下import sysimport randomimport
- 代码示例#输入'''order_id:31489join_course[0][join_tel]:131309998
- 相信大家都遇到过这种情况,下载文件的时候遇到压缩包又没有密码,或者说自己设置的加密密码,但是忘记了,就很难受~但是~在Python程序员面前
- 1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。fi