PyTorch:如何批量进行推理(并行推理)

时间:2020-08-26 18:31:02

标签: 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

当前试图理解该库并创建一个有效的示例。同时,您知道更好的方法吗?

1 个答案:

答案 0 :(得分:2)

在pytorch中,输入张量始终在第一维中具有批处理维。因此,按批次进行推断是默认行为,您只需要将批次尺寸增加到大于1。

例如,如果您的单个输入为[1, 1],则其输入张量为[[1, 1], ],形状为(1, 2)。如果您有两个输入[1, 1][2, 2],则生成形状为(2,2)的输入张量为[[1, 1], [2, 2], ]。这通常是在批处理生成器功能(例如dataloader)中完成的。