yeyupiaoling/AudioClassification-Pytorch

推理速度

SSTato opened this issue · 4 comments

怎么看推理速度呢

这样,要执行两次,第一次是预热。

def infer():
    s = time.time()
    data = load_audio(args.audio_path, mode='infer')
    data = data[np.newaxis, :]
    data = torch.tensor(data, dtype=torch.float32, device=device)
    # 执行预测
    output = model(data)
    result = torch.nn.functional.softmax(output, dim=-1)
    result = result.data.cpu().numpy()
    # 显示图片并输出结果最大的label
    lab = np.argsort(result)[0][-1]
    print(f'音频:{args.audio_path} 的预测结果标签为:{class_labels[lab]}')
    print(time.time() - s)

这样,要执行两次,第一次是预热。

def infer():
    s = time.time()
    data = load_audio(args.audio_path, mode='infer')
    data = data[np.newaxis, :]
    data = torch.tensor(data, dtype=torch.float32, device=device)
    # 执行预测
    output = model(data)
    result = torch.nn.functional.softmax(output, dim=-1)
    result = result.data.cpu().numpy()
    # 显示图片并输出结果最大的label
    lab = np.argsort(result)[0][-1]
    print(f'音频:{args.audio_path} 的预测结果标签为:{class_labels[lab]}')
    print(time.time() - s)

时间是1.5104613304138184
执行两次是为什么,因为我多次执行基本都是1.5左右,是不是因为启动也需要时间的原因,如果批预测的话平均时间就低了?不知道我的理解对吗,如果看推理速度的话,应该是计算多个文件预测的平均时间吧

你的预热是再一个程序里面执行多次吗?
是这样的哦:

if __name__ == '__main__':
    infer()
    infer()
    infer()

你的预热是再一个程序里面执行多次吗? 是这样的哦:

if __name__ == '__main__':
    infer()
    infer()
    infer()

sorry,我明白了,确实是预热的原因,时间是0.031914710998535156,很快了,多谢!