Python 如何限制Torch中的Tensor.to()造成的性能开销?
我正在开发一个基于和框架的实时目标跟踪网络。我正在模拟一个恒定的输入数据流,以1的批大小运行它。据我所知,我注意到由于不断使用.to()Torch方法而导致的速度大大减慢,而我无法控制该方法 什么技术可以用来限制从CPU到GPU的数据传输所造成的开销 以下是Pycharm的简介,重点介绍了重要链接: 以及与.to()之前的最后一个框对应的代码: 以及加载图像并运行跟踪的主循环:Python 如何限制Torch中的Tensor.to()造成的性能开销?,python,performance,neural-network,pytorch,Python,Performance,Neural Network,Pytorch,我正在开发一个基于和框架的实时目标跟踪网络。我正在模拟一个恒定的输入数据流,以1的批大小运行它。据我所知,我注意到由于不断使用.to()Torch方法而导致的速度大大减慢,而我无法控制该方法 什么技术可以用来限制从CPU到GPU的数据传输所造成的开销 以下是Pycharm的简介,重点介绍了重要链接: 以及与.to()之前的最后一个框对应的代码: 以及加载图像并运行跟踪的主循环: from torch.utils.data import DataLoader from tqdm import t
from torch.utils.data import DataLoader
from tqdm import tqdm
data_loader = DataLoader(seq, batch_size=1, shuffle=False)
for i, frame in enumerate(tqdm(data_loader)):
if len(seq) * tracktor['frame_split'][0] <= i <= len(seq) * tracktor['frame_split'][1]:
with torch.no_grad():
tracker.step(frame)
num_frames += 1
来自torch.utils.data导入数据加载器
从TQM导入TQM
数据加载器=数据加载器(顺序,批量大小=1,随机播放=False)
对于i,枚举中的帧(tqdm(数据加载器)):
如果len(seq)*跟踪器['frame_split'][0]
from torch.utils.data import DataLoader
from tqdm import tqdm
data_loader = DataLoader(seq, batch_size=1, shuffle=False)
for i, frame in enumerate(tqdm(data_loader)):
if len(seq) * tracktor['frame_split'][0] <= i <= len(seq) * tracktor['frame_split'][1]:
with torch.no_grad():
tracker.step(frame)
num_frames += 1