From ec6c2003d1d54a7a5b652ccb6e17654a13da20fd Mon Sep 17 00:00:00 2001 From: Pryest <495945214@qq.com> Date: Sun, 2 Oct 2022 17:12:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E4=BA=8ELogger?= =?UTF-8?q?=E7=B1=BBadd=5Fhyper=E6=96=B9=E6=B3=95=E7=9A=84=E6=96=B0?= =?UTF-8?q?=E5=9F=BA=E7=B1=BBFitlogConfig=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fitlog/__init__.py | 4 +++- fitlog/fastlog/logger.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/fitlog/__init__.py b/fitlog/__init__.py index 1eb4665..f267955 100755 --- a/fitlog/__init__.py +++ b/fitlog/__init__.py @@ -24,7 +24,8 @@ __all__ = [ "get_log_id", "get_commit_id", "get_fit_id", - "create_log_folder" + "create_log_folder", + "FitlogConfig" ] import os @@ -32,6 +33,7 @@ import os os.environ['GIT_PYTHON_REFRESH'] = "quiet" from fitlog.fastlog import logger as _logger +from fitlog.fastlog.logger import FitlogConfig from fitlog.fastgit import Committer, committer as _committer from typing import Union import argparse diff --git a/fitlog/fastlog/logger.py b/fitlog/fastlog/logger.py index 20ed79d..f858110 100755 --- a/fitlog/fastlog/logger.py +++ b/fitlog/fastlog/logger.py @@ -18,6 +18,22 @@ import warnings import numpy as np import numbers +class FitlogConfig: + """ + 用于add_hyper函数的基类。 + 继承后无需实例化直接传入add_hyper。 + """ + pass + +def _get_config_args(conf:FitlogConfig): + """ + 读取FitlogConfig内的超参。 + """ + config_dict = { + k:v for k,v in vars(conf).items() if not k.startswith("_") + } + return config_dict + def _check_debug(func): """ @@ -460,6 +476,8 @@ class Logger: _check_dict_value(value) elif isinstance(value, ConfigParser): value = _convert_configparser_to_dict(value) # no need to check + elif issubclass(value, FitlogConfig): + value = _get_config_args(value) else: try: import dataclasses -- Gitee