(1)纯list(list->tensor)
import numpy as np
import torch
import time
ls=[ [ [ [1 for s in range(200)] for k in range(3)] for j in range(256)]for i in range(256)]
st=time.time()
torch.tensor(np.array(ls))
print(time.time()-st)
运行结果:
1.7645635604858398
(2)纯list(list->numpy->tensor)
import numpy as np
import torch
import time
ls=[ [ [ [1 for s in range(200)] for k in range(3)] for j in range(256)]for i in range(256)]
st=time.time()
torch.tensor(ls)
print(time.time()-st)
运行结果:
1.1882526874542236
(3)含numpy的list(list->numpy->tensor)
import numpy as np
import torch
import time
ls=[np.ones((3,256,256)) for i in range(200)]
st=time.time()
torch.tensor(np.array(ls))
print(time.time()-st)
运行结果:
0.10957527160644531
(4)含numpy的list(list->tensor)
import numpy as np
import torch
import time
ls=[np.ones((3,256,256)) for i in range(200)]
st=time.time()
torch.tensor(ls)
print(time.time()-st)
运行结果:
2.554304599761963
结论就是,存在numpy的时候先转numpy再转Tensor是最快的;纯list使用直接转Tensor最快的;综合来说,先转numpy再转Tensor是最快的。
本文探讨了将不同类型的list转换为torch Tensor时的效率,结果显示,当数据已经是numpy数组时,先转为numpy再转为Tensor速度最快。纯list直接转Tensor次之,而含有numpy数组的list直接转Tensor最慢。结论强调了预处理数据成numpy格式对于提高转换效率的重要性。
7万+

被折叠的 条评论
为什么被折叠?



