基于torch.where和布爾索引的速度比較
更新時間:2020年01月02日 09:37:06 作者:WYXHAHAHA123
今天小編就為大家分享一篇基于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實現(xiàn)對于任意shape的torch.tensor,如果其中的element不等于5則為0,等于5則保留原數(shù)值
實現(xiàn)該功能的兩種方式,并比較兩種實現(xiàn)方式的速度
'''
# 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和布爾索引的速度比較就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
在python中使用requests 模擬瀏覽器發(fā)送請求數(shù)據(jù)的方法
今天小編就為大家分享一篇在python中使用requests 模擬瀏覽器發(fā)送請求數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python中線程threading.Thread的使用詳解
python的thread模塊是比較底層的模塊,python的threading模塊是對thread做了一些包裝的,可以更加方便的被使用。本文將為大家詳細介紹一下python中的線程threading.Thread()的使用,需要的可以參考一下2022-07-07
Pandas實現(xiàn)DataFrame按行求百分數(shù)(比例數(shù))
今天小編就為大家分享一篇Pandas實現(xiàn)DataFrame按行求百分數(shù)(比例數(shù)),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
淺析python中5個帶key的內(nèi)置函數(shù)
這篇文章主要介紹了python中5個帶key的內(nèi)置函數(shù),包括max取最大值函數(shù),min取最小值函數(shù),filter過濾函數(shù),本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
python設(shè)置 matplotlib 正確顯示中文的四種方式
這篇文章主要介紹了python設(shè)置 matplotlib 正確顯示中文的四種方式,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-05-05

