Image-GS / utils /misc_utils.py
Julien Blanchon
Deploy optimized Image-GS with dynamic dependencies
d62394f
Raw
History Blame Contribute Delete
1.53 kB
import os
import random
import shutil
from argparse import ArgumentParser
import numpy as np
import torch
import yaml
def clean_dir(path):
if os.path.exists(path):
shutil.rmtree(path)
def get_latest_ckpt_step(load_path):
saved_steps = [
int(os.path.splitext(path)[0].split("-")[-1])
for path in os.listdir(load_path)
if path.endswith(".pt")
]
latest_step = -1 if len(saved_steps) == 0 else max(saved_steps)
return latest_step
def set_random_seed(seed):
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
def load_cfg(cfg_path: str, parser: ArgumentParser) -> ArgumentParser:
with open(cfg_path, "r", encoding="utf-8") as file:
cfg: dict = yaml.safe_load(file)
for key, value in cfg.items():
if value is None:
raise ValueError("'None' is not a supported value in the config file")
if isinstance(value, bool):
parser.add_argument(f"--{key}", action="store_true", default=value)
else:
parser.add_argument(f"--{key}", type=type(value), default=value)
return parser
def save_cfg(path: str, args, mode="w"):
with open(path, mode=mode, encoding="utf-8") as file:
print("#################### Training Config ####################", file=file)
yaml.dump(vars(args), file, default_flow_style=False)