list转Tensor不同方式的速度对比

本文探讨了将不同类型的list转换为torch Tensor时的效率,结果显示,当数据已经是numpy数组时,先转为numpy再转为Tensor速度最快。纯list直接转Tensor次之,而含有numpy数组的list直接转Tensor最慢。结论强调了预处理数据成numpy格式对于提高转换效率的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(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是最快的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值