diff --git a/pyrad/utils/misc.py b/pyrad/utils/misc.py index bf68cba22..68c3d0b94 100644 --- a/pyrad/utils/misc.py +++ b/pyrad/utils/misc.py @@ -23,6 +23,7 @@ from typing import Any, Dict import torch from omegaconf import DictConfig +from math import floor, log class DotDict(dict): @@ -90,3 +91,11 @@ def get_hash_str_from_dict(dictionary: Dict[str, Any]) -> str: encoded = json.dumps(dictionary, sort_keys=True).encode() dhash.update(encoded) return dhash.hexdigest() + + +def human_format(num): + """Format a number in a more human readable way""" + units = ["", "K", "M", "B", "T", "P"] + k = 1000.0 + magnitude = int(floor(log(num, k))) + return "%.2f %s" % (num / k**magnitude, units[magnitude]) diff --git a/scripts/run_eval.py b/scripts/run_eval.py index b6a71ccfa..81996c0bf 100644 --- a/scripts/run_eval.py +++ b/scripts/run_eval.py @@ -15,6 +15,7 @@ from tqdm import tqdm from pyrad.cameras.camera_paths import CameraPath, get_interpolated_camera_path, get_spiral_path from pyrad.data.dataloader import EvalDataloader, setup_dataset_eval, setup_dataset_train from pyrad.graphs.base import Graph, setup_graph +from pyrad.utils.misc import human_format from pyrad.utils.writer import TimeWriter @@ -200,7 +201,7 @@ def main( avg_rays_per_sec = stats_dict["avg rays per sec"] avg_fps = stats_dict["avg fps"] print(f"Avg. PSNR: {avg_psnr:0.4f}") - print(f"Avg. Rays / Sec: {avg_rays_per_sec:.2e}") + print(f"Avg. Rays / Sec: {human_format(avg_rays_per_sec)}") print(f"Avg. FPS: {avg_fps:0.4f}") elif method == MethodType.TRAJ: # TODO(ethan): pass in camera information into argparse parser