Spaces:
Runtime error
Runtime error
import os | |
import yaml | |
import torch | |
import monai | |
import munch | |
def load_config(fn: str='config.yaml'): | |
"Load config from YAML and return a serialized dictionary object" | |
with open(fn, 'r') as stream: | |
config=yaml.safe_load(stream) | |
config=munch.munchify(config) | |
if not config.overwrite: | |
i=1 | |
while os.path.exists(config.run_id+f'_{i}'): | |
i+=1 | |
config.run_id+=f'_{i}' | |
config.out_dir = os.path.join(config.run_id, config.out_dir) | |
config.log_dir = os.path.join(config.run_id, config.log_dir) | |
if not isinstance(config.data.image_cols, (tuple, list)): | |
config.data.image_cols=[config.data.image_cols] | |
if not isinstance(config.data.label_cols, (tuple, list)): | |
config.data.label_cols=[config.data.label_cols] | |
config.transforms.mode=('bilinear', ) * len(config.data.image_cols) + \ | |
('nearest', ) * len(config.data.label_cols) | |
return config | |
def num_workers(): | |
"Get max supported workers -2 for multiprocessing" | |
import resource | |
import multiprocessing | |
# first check for max number of open files allowed on system | |
soft_limit, hard_limit = resource.getrlimit(resource.RLIMIT_NOFILE) | |
n_workers=multiprocessing.cpu_count() - 2 | |
# giving each worker at least 256 open processes should allow them to run smoothly | |
max_workers = soft_limit // 256 | |
if max_workers < n_workers: | |
print( | |
"Will not use all available workers as number of allowed open files is to small" | |
"to ensure smooth multiprocessing. Current limits are:\n" | |
f"\t soft_limit: {soft_limit}\n" | |
f"\t hard_limit: {hard_limit}\n" | |
"try increasing the limits to at least {256*n_workers}." | |
"See https://superuser.com/questions/1200539/cannot-increase-open-file-limit-past-4096-ubuntu" | |
"for more details" | |
) | |
return max_workers | |
return n_workers | |
USE_AMP=True if monai.utils.get_torch_version_tuple() >= (1, 6) else False |