【发布时间】:2021-12-31 03:20:46
【问题描述】:
任何人都可以改进处理时间来生成序列号列表吗?这是我的代码,它需要 ~ 0.05 秒。
import torch
import time
import random
index = [torch.tensor(660000)]
st = time.time()
allowed = [x for x in range(index[0])] + [x for x in range(index[0] + 1,2000)]
index = random.sample(allowed, 1000)
print(time.time()-st)
请指教
谢谢
【问题讨论】:
-
[x for x in range(index[0])]->list(range(index[0]))... 但是你为什么需要list?为什么range对象不够用? -
注意,
[x for x in whatever]应该始终只是list(whatever) -
另外,如果
numpy.ndarray可以工作,np.arange可能更快 -
如果我们知道您将要如何处理该列表,我们会更容易回答
-
后面有 random.sample 需要一个列表。实际上,我想在这里使用 github 中的代码 [link] github.com/akwasigroch/Pretext-Invariant-Representations/blob/… 在 return_random 函数中,但我觉得性能很慢
标签: python list performance tensor torch