学习笔记28-pytorch框架下模型推理时间,单张FPS计算代码。

FPS画面每秒传输帧数,多少帧每秒,或每秒多少帧。F就是英文单词Frame(画面、帧),P就是Per(每),S就是Second(秒)

model.eval() # 进入eval模式(即关闭掉droout方法
        total_time = 0
        with torch.no_grad():
            # predict class
            input = img.to(device)
            torch.cuda.synchronize()
            time_start = time.time()
            output = torch.squeeze(model(img.to(device))).cpu() # 将图片通过model正向传播,得到输出,将输入进行压缩,
                                                                # 将batch维度压缩掉,得到最终输出(out)
            torch.cuda.synchronize()
            time_end = time.time()
            predict = torch.softmax(output, dim=0)              # 经过softmax处理后,就变成概率分布的形式了
            predict_cla = torch.argmax(predict).numpy()         # 通过argmax方法,得到概率最大的处所对应的索引
            single_fps = 1 / (time_end - time_start)
            time_sum = (time_end - time_start) * 1000
        print_res = "fileName:{}    class: {}   prob: {:.3}  time: {: .3f}ms  single_fps: {: .3f}".format(file,class_indict[str(predict_cla)],
                                                     predict[predict_cla].numpy(),time_sum,single_fps)
        # predict[predict_cla]打印类别名称以及他所对应的预测概率

你可能感兴趣的:(学习笔记,python,学习)