如何解决PyTorch:如何批量进行推理并行推理
如何在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
当前试图理解该库并创建一个有效的示例。同时,您知道更好的方法吗?
解决方法
在pytorch中,输入张量始终在第一维中具有批处理维。因此,按批次进行推断是默认行为,您只需要将批次尺寸增加到大于1。
例如,如果您的单个输入为[1,1]
,则其输入张量为[[1,1],]
,形状为(1,2)
。如果您有两个输入[1,1]
和[2,2]
,则生成形状为(2,2)的输入张量为[[1,[2,2],]
。这通常是在批处理生成器功能(例如dataloader
)中完成的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。