如何从这些经过预训练的模型中获得预测?

时间:2019-05-23 23:31:22

标签: machine-learning computer-vision pytorch

我一直在尝试生成人体姿势估计,遇到了许多预先训练的模型(例如Pose2Segdeep-high-resolution-net),但是这些模型仅包含用于训练和测试的脚本,成为在研究deep-high-resolution-net中实现模型的代码规范,我尝试编写一个脚本来加载经过预训练的模型并将其提供给我的图像,但是我得到的输出是一堆张量,我有不知道如何将它们转换为我需要的.json批注。

这里有新手,对不起我的英语不好,谢谢您。

我会包含我的脚本,但脚本要超过100行。

PS:与作者联系并询问他们是否可以帮助您吗?

因为看起来有点令人讨厌。

1 个答案:

答案 0 :(得分:1)

我没有进行骨骼检测研究,但是您的问题似乎很普遍。

(1)我不认为其他人应该从头开始教您如何加载数据并从头开始运行他们的代码。

(2)要运行其他人的代码,只需修改其提供的测试脚本即可,例如

https://github.com/leoxiaobin/deep-high-resolution-net.pytorch/blob/master/tools/test.py

他们已经帮助您加载了模型

 model = eval('models.'+cfg.MODEL.NAME+'.get_pose_net')(
        cfg, is_train=False
    )

    if cfg.TEST.MODEL_FILE:
        logger.info('=> loading model from {}'.format(cfg.TEST.MODEL_FILE))
        model.load_state_dict(torch.load(cfg.TEST.MODEL_FILE), strict=False)
    else:
        model_state_file = os.path.join(
            final_output_dir, 'final_state.pth'
        )
        logger.info('=> loading model from {}'.format(model_state_file))
        model.load_state_dict(torch.load(model_state_file))

    model = torch.nn.DataParallel(model, device_ids=cfg.GPUS).cuda()

只需致电

# evaluate on Variable x with testing data
y = model(x)
# access Variable's tensor, copy back to CPU, convert to numpy
arr = y.data.cpu().numpy()
# write CSV
np.savetxt('output.csv', arr)

您应该可以在excel中打开

(3)“将它们转换为我需要的.json注释”。

这是没人能帮助的问题。我们不知道您想要什么格式。对于他们的格式,可以通过他们的论文获得。或通过以下方式查看他们的训练数据:

X, y = torch.load('some_training_set_with_labels.pt')

通过关联x和y。那你应该有一个很好的主意。