【发布时间】:2022-04-12 17:28:57
【问题描述】:
我的模型处理视频,我想计算它处理帧的速度(以每秒帧数为单位)或处理 1 帧的时间。
我创建了一个函数来获取预测,它以原始帧作为输入,进行所有预处理,并返回分类。预处理步骤之一是从视频中采样帧,基本上,它将进入深度学习模型的帧数减少了 1/5。如果不进行所有预处理,模型将无法按预期执行。
所以我的问题是,我是否也应该考虑预处理时间?而且,最重要的是,这个处理时间是针对所有帧还是仅针对模型实际看到的帧?
示例代码结构如下:
start = time.time()
prediction = main(data)
end = time.time
print("Time for 1 frame=",(end-start)/n_frames) # lets say n_frames = 50
main 函数内部:
preprocessed = preprocess(data) # resizing, sampling down from 50 to 10 frames
prediction = model.predict(preprocessed)
return prediction
示例:输入为 50 帧,预处理和预测所需的总时间为 1 秒。 (注意模型只看到 10 个预处理帧) 因此,1 帧的处理时间为 1/50 秒。 或如果是 1/10 秒,因为模型只能处理 10 帧,其他的只是在预处理中被跳过。我应该把开始时间和结束时间框架放在哪里?
哪种方式是标准方式还是正确方式?
【问题讨论】:
标签: python performance machine-learning deep-learning