如何在PyTorch中批量进行推理?如何并行进行推理以加快这部分代码的速度。
我从进行推理的标准方法开始:
with torch.no_grad():
for inputs, labels in dataloader['predict']:
inputs = inputs.to(device)
output = model(inputs)
output = output.to(device)
我进行了研究,唯一提到并行(在同一台机器上)进行推理的似乎是 Dask 库:https://examples.dask.org/machine-learning/torch-prediction.html https://examples.dask.org/machine-learning/torch-prediction.html
目前正在尝试了解该库并创建一个工作示例。同时你知道更好的方法吗?
在 pytorch 中,输入张量始终在第一维中具有批量维度。因此,按批次进行推理是默认行为,您只需将批次维度增加到大于 1 即可。
例如,如果您的单个输入是[1, 1]
,其输入张量为[[1, 1], ]
有形状(1, 2)
。如果你有两个输入[1, 1]
and [2, 2]
,生成输入张量为[[1, 1], [2, 2], ]
形状为 (2, 2)。这通常是在批处理生成器函数中完成的,例如您的dataloader
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)