You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.6 KiB
73 lines
1.6 KiB
## Utils |
|
|
|
### ProgressBar |
|
|
|
If you want to apply a method to a list of items and track the progress, `track_progress` |
|
is a good choice. It will display a progress bar to tell the progress and ETA. |
|
|
|
```python |
|
import mmcv |
|
|
|
def func(item): |
|
# do something |
|
pass |
|
|
|
tasks = [item_1, item_2, ..., item_n] |
|
|
|
mmcv.track_progress(func, tasks) |
|
``` |
|
|
|
The output is like the following. |
|
 |
|
|
|
There is another method `track_parallel_progress`, which wraps multiprocessing and |
|
progress visualization. |
|
|
|
```python |
|
mmcv.track_parallel_progress(func, tasks, 8) # 8 workers |
|
``` |
|
|
|
 |
|
|
|
If you want to iterate or enumerate a list of items and track the progress, `track_iter_progress` |
|
is a good choice. It will display a progress bar to tell the progress and ETA. |
|
|
|
```python |
|
import mmcv |
|
|
|
tasks = [item_1, item_2, ..., item_n] |
|
|
|
for task in mmcv.track_iter_progress(tasks): |
|
# do something like print |
|
print(task) |
|
|
|
for i, task in enumerate(mmcv.track_iter_progress(tasks)): |
|
# do something like print |
|
print(i) |
|
print(task) |
|
``` |
|
|
|
### Timer |
|
|
|
It is convenient to compute the runtime of a code block with `Timer`. |
|
|
|
```python |
|
import time |
|
|
|
with mmcv.Timer(): |
|
# simulate some code block |
|
time.sleep(1) |
|
``` |
|
|
|
or try with `since_start()` and `since_last_check()`. This former can |
|
return the runtime since the timer starts and the latter will return the time |
|
since the last time checked. |
|
|
|
```python |
|
timer = mmcv.Timer() |
|
# code block 1 here |
|
print(timer.since_start()) |
|
# code block 2 here |
|
print(timer.since_last_check()) |
|
print(timer.since_start()) |
|
```
|
|
|