Args: cfg (CfgNode): configs. Details can be found in slowfast/config/defaults.py n_workers (Optional[int]): number of CPUs for running video visualizer. If not given, use all CPUs.
(self, video_vis, n_workers=None)
| 152 | self.result_queue.put(task) |
| 153 | |
| 154 | def __init__(self, video_vis, n_workers=None): |
| 155 | """ |
| 156 | Args: |
| 157 | cfg (CfgNode): configs. Details can be found in |
| 158 | slowfast/config/defaults.py |
| 159 | n_workers (Optional[int]): number of CPUs for running video visualizer. |
| 160 | If not given, use all CPUs. |
| 161 | """ |
| 162 | |
| 163 | num_workers = mp.cpu_count() if n_workers is None else n_workers |
| 164 | |
| 165 | self.task_queue = mp.Queue() |
| 166 | self.result_queue = mp.Queue() |
| 167 | self.get_indices_ls = [] |
| 168 | self.procs = [] |
| 169 | self.result_data = {} |
| 170 | self.put_id = -1 |
| 171 | for _ in range(max(num_workers, 1)): |
| 172 | self.procs.append( |
| 173 | AsyncVis._VisWorker( |
| 174 | video_vis, self.task_queue, self.result_queue |
| 175 | ) |
| 176 | ) |
| 177 | |
| 178 | for p in self.procs: |
| 179 | p.start() |
| 180 | |
| 181 | atexit.register(self.shutdown) |
| 182 | |
| 183 | def put(self, task): |
| 184 | """ |