mirror of
https://github.com/wassname/ray.git
synced 2026-07-31 12:41:01 +08:00
[tune] logger refactor part 3: Add ExperimentLogger class (#11749)
This commit is contained in:
@@ -6,6 +6,7 @@ import os
|
||||
import inspect
|
||||
import threading
|
||||
import time
|
||||
import uuid
|
||||
from collections import defaultdict, deque, Mapping, Sequence
|
||||
from datetime import datetime
|
||||
from threading import Thread
|
||||
@@ -540,6 +541,30 @@ def detect_config_single(func):
|
||||
return use_config_single
|
||||
|
||||
|
||||
def create_logdir(dirname: str, local_dir: str):
|
||||
"""Create an empty logdir with name `dirname` in `local_dir`.
|
||||
|
||||
If `local_dir`/`dirname` already exists, a unique string is appended
|
||||
to the dirname.
|
||||
|
||||
Args:
|
||||
dirname (str): Dirname to create in `local_dir`
|
||||
local_dir (str): Root directory for the log dir
|
||||
|
||||
Returns: full path to the newly created logdir.
|
||||
"""
|
||||
local_dir = os.path.expanduser(local_dir)
|
||||
logdir = os.path.join(local_dir, dirname)
|
||||
if os.path.exists(logdir):
|
||||
old_dirname = dirname
|
||||
dirname += "_" + uuid.uuid4().hex[:4]
|
||||
logger.info(f"Creating a new dirname {dirname} because "
|
||||
f"trial dirname '{old_dirname}' already exists.")
|
||||
logdir = os.path.join(local_dir, dirname)
|
||||
os.makedirs(logdir, exist_ok=True)
|
||||
return logdir
|
||||
|
||||
|
||||
class SafeFallbackEncoder(json.JSONEncoder):
|
||||
def __init__(self, nan_str="null", **kwargs):
|
||||
super(SafeFallbackEncoder, self).__init__(**kwargs)
|
||||
|
||||
Reference in New Issue
Block a user