results = inference_recognizer(model, fake_anno)

 问题导入

第二个参数fake_anno是重点

发现是字典类型

而且也提示了fake_anno是(the input of pipeline)

data = video  ## 将fake_anno赋值给data

然后接下来是把data放入这个test_pipeline流水线里面

test_pipeline = Compose(test_pipeline)
data = test_pipeline(data)

言外之意是把fake_anno放入这个test_pipeline流水线里面

data = collate([data], samples_per_gpu=1)

将处理后的数据 data 进行批处理(collate),并将其转换为适合在 GPU 上处理的格式。samples_per_gpu=1 表示每个 GPU 处理一个样本。

if next(model.parameters()).is_cuda:
        # scatter to specified GPU
        data = scatter(data, [device])[0]

如果模型在 GPU 上,进一步将数据分散到指定的 GPU 设备上,以便进行高效的计算

总结:

整段代码的目的是:

  • 先对数据进行预处理;
  • 然后将处理后的数据整理成适合模型输入的批次;
  • 如果模型在 GPU 上,进一步将数据分散到指定的 GPU 设备上,以便进行高效的计算。

接下来就是前向传播了

核心

从130GB视频样本数据发现获取的骨架模态数据ann_file发现存储大概600MB
极大压缩了存储空间。

现在的问题是拿到这个ann_file骨架模态数据之后。貌似获取骨架数据过程中没有经过pipeline这个流水线过程。

问题:也就是说需要把这个ann_file骨架模态数据进一步pipeline流水线预处理之后,才能输入到模型里面进行前向传播forward函数推理。

分析:通过分析代码是这样的。

问题:那就是说需要看一下源码这个ann_file骨架数据模态在哪里调用的?并在哪里输入的?是否是输入到了pipeline里面进行的预处理?猜测应该是的。

分析:通过分析代码发现是在PoseDataset类里面调用的,猜测是完全正确的。

pyskl/pyskl/apis/inference.py at main · kennymckormick/pyskl · GitHub

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值