我有一个非常简单的任务。我有一个视频,首先我必须按帧对其进行切片,使用tensorflow对其进行预测,然后将这些预测帧组合成一个视频。下面是我得到的结果:
Slicing ... Time elapsed since last slice : 0s. Frame-1
.
Slicing ... Time elapsed since last slice : 2.0517446994781494s. Frame-2
.
Slicing ... Time elapsed since last slice : 0.8912339210510254s. Frame-3
.
Slicing ... Time elapsed since last slice : 0.8657193183898926s. Frame-4
.
Slicing ... Time elapsed since last slice : 0.8655312061309814s. Frame-5
.
Slicing ... Time elapsed since last slice : 0.8827650547027588s. Frame-6
.
Slicing ... Time elapsed since last slice : 0.8690683841705322s. Frame-7
.
Slicing ... Time elapsed since last slice : 0.8906550407409668s. Frame-8
.
Slicing ... Time elapsed since last slice : 0.8798754215240479s. Frame-9
.
Slicing ... Time elapsed since last slice : 0.9341959953308105s. Frame-10每一帧大约花了0.8秒。假设我有一个5秒的视频,每秒30帧。大约需要120秒才能处理。
我有一个类似于多线程之类的并行化的想法,这可能吗?我必须从哪里开始呢?谢谢。
发布于 2019-09-27 00:28:51
您可以尝试使用python中的多处理包。有关更多详细信息,请参阅:https://docs.python.org/3/library/multiprocessing.html。
或者您可以尝试的其他方法是通过优化来最大化TensorFlow性能。性能优化的主要目标是利用机器中的所有可用内核,从而加快进程。这可以通过设置intra_op_parallelism_threads、inter_op_parallelism_threads、OMP_NUM_THREADS等来实现。
希望这能有所帮助。
https://stackoverflow.com/questions/58120801
复制相似问题