| @@ -2,6 +2,9 @@ __version__ = "0.1.1.99" | |||||
| import os | import os | ||||
| from .logger import get_module_logger | from .logger import get_module_logger | ||||
| from .utils import is_torch_avaliable | |||||
| logger = get_module_logger("Initialization") | |||||
| def init(make_dir: bool = False, tf_loglevel: str = "2", **kwargs): | def init(make_dir: bool = False, tf_loglevel: str = "2", **kwargs): | ||||
| @@ -10,9 +13,7 @@ def init(make_dir: bool = False, tf_loglevel: str = "2", **kwargs): | |||||
| C.reset() | C.reset() | ||||
| C.update(**kwargs) | C.update(**kwargs) | ||||
| logger = get_module_logger("Initialization") | |||||
| logger.info(f"init learnware market with {kwargs}") | logger.info(f"init learnware market with {kwargs}") | ||||
| ## make dirs | ## make dirs | ||||
| if make_dir: | if make_dir: | ||||
| os.makedirs(C.root_path, exist_ok=True) | os.makedirs(C.root_path, exist_ok=True) | ||||
| @@ -25,3 +26,7 @@ def init(make_dir: bool = False, tf_loglevel: str = "2", **kwargs): | |||||
| ## ignore tensorflow warning | ## ignore tensorflow warning | ||||
| # os.environ["TF_CPP_MIN_LOG_LEVEL"] = tf_loglevel | # os.environ["TF_CPP_MIN_LOG_LEVEL"] = tf_loglevel | ||||
| # logger.info(f"The tensorflow log level is setted to {tf_loglevel}") | # logger.info(f"The tensorflow log level is setted to {tf_loglevel}") | ||||
| if not is_torch_avaliable(verbose=True): | |||||
| logger.warning("The functionality of learnware is limited due to 'torch' is not installed!") | |||||
| @@ -1,3 +1,15 @@ | |||||
| from .organizer import EasyOrganizer | from .organizer import EasyOrganizer | ||||
| from .searcher import EasySearcher | |||||
| from .checker import EasySemanticChecker, EasyStatChecker | |||||
| from ...utils import is_torch_avaliable | |||||
| from ...logger import get_module_logger | |||||
| logger = get_module_logger("market_easy") | |||||
| if not is_torch_avaliable(verbose=False): | |||||
| from .searcher import EasySearcher | |||||
| from .checker import EasySemanticChecker, EasyStatChecker | |||||
| else: | |||||
| EasySearcher = None | |||||
| EasySemanticChecker = None | |||||
| EasyStatChecker = None | |||||
| logger.warning("EasySeacher and EasyChecker are skipped because 'torch' is not installed!") | |||||
| @@ -1,10 +1,23 @@ | |||||
| from .averaging import AveragingReuser | |||||
| from .job_selector import JobSelectorReuser | |||||
| from ..logger import get_module_logger | |||||
| from ..utils import is_torch_avaliable | |||||
| from .utils import is_geatpy_avaliable, is_lightgbm_avaliable | |||||
| logger = get_module_logger("reuse") | |||||
| from ..utils.import_utils import is_geatpy_avaliable | |||||
| if is_geatpy_avaliable(verbose=True): | |||||
| if not is_geatpy_avaliable(verbose=True): | |||||
| EnsemblePruningReuser = None | |||||
| logger.warning("EnsemblePruningReuser is skipped due to 'geatpy' is not installed!") | |||||
| else: | |||||
| from .ensemble_pruning import EnsemblePruningReuser | from .ensemble_pruning import EnsemblePruningReuser | ||||
| if not is_torch_avaliable(verbose=False): | |||||
| AveragingReuser = None | |||||
| logger.warning("AveragingReuser is skipped due to 'torch' is not installed!") | |||||
| else: | else: | ||||
| EnsemblePruningReuser = None | |||||
| from .averaging import AveragingReuser | |||||
| if not is_lightgbm_avaliable(verbose=True) or not is_torch_avaliable(verbose=False): | |||||
| JobSelectorReuser = None | |||||
| logger.warning("JobSelectorReuser is skipped due to 'torch' is not installed!") | |||||
| else: | |||||
| from .job_selector import JobSelectorReuser | |||||
| @@ -0,0 +1,23 @@ | |||||
| from ..logger import get_module_logger | |||||
| logger = get_module_logger("reuse_utils") | |||||
| def is_geatpy_avaliable(): | |||||
| try: | |||||
| import geatpy | |||||
| except ModuleNotFoundError as err: | |||||
| logger.warning( | |||||
| "ModuleNotFoundError: geatpy is not installed, please install geatpy (only support python version<3.11)!" | |||||
| ) | |||||
| return False | |||||
| return True | |||||
| def is_lightgbm_avaliable(): | |||||
| try: | |||||
| import lightgbm | |||||
| except ModuleNotFoundError as err: | |||||
| logger.warning("ModuleNotFoundError: lightgbm is not installed, please install lightgbm!") | |||||
| return False | |||||
| return True | |||||
| @@ -1,4 +1,3 @@ | |||||
| from .module import generate_stat_spec, generate_rkme_spec, generate_rkme_image_spec, generate_rkme_text_spec | |||||
| from .base import Specification, BaseStatSpecification | from .base import Specification, BaseStatSpecification | ||||
| from .regular import ( | from .regular import ( | ||||
| RegularStatsSpecification, | RegularStatsSpecification, | ||||
| @@ -7,3 +6,12 @@ from .regular import ( | |||||
| RKMEImageSpecification, | RKMEImageSpecification, | ||||
| RKMETextSpecification, | RKMETextSpecification, | ||||
| ) | ) | ||||
| from ..utils import is_torch_avaliable | |||||
| if not is_torch_avaliable(verbose=False): | |||||
| generate_stat_spec = None | |||||
| generate_rkme_spec = None | |||||
| generate_rkme_image_spec = None | |||||
| generate_rkme_text_spec = None | |||||
| else: | |||||
| from .module import generate_stat_spec, generate_rkme_spec, generate_rkme_image_spec, generate_rkme_text_spec | |||||
| @@ -1,4 +1,6 @@ | |||||
| from .base import RegularStatsSpecification | |||||
| from ...utils import is_torch_avaliable | |||||
| from .text import RKMETextSpecification | from .text import RKMETextSpecification | ||||
| from .table import RKMETableSpecification, RKMEStatSpecification | from .table import RKMETableSpecification, RKMEStatSpecification | ||||
| from .image import RKMEImageSpecification | from .image import RKMEImageSpecification | ||||
| from .base import RegularStatsSpecification | |||||
| @@ -1 +1,12 @@ | |||||
| from .rkme import RKMEImageSpecification | |||||
| from .utils import is_torch_optimizer_avaliable | |||||
| from ....utils import is_torch_avaliable | |||||
| from ....logger import get_module_logger | |||||
| logger = get_module_logger("regular_image_spec") | |||||
| if not is_torch_optimizer_avaliable(verbose=True) or not is_torch_avaliable(verbose=False): | |||||
| RKMEImageSpecification = None | |||||
| logger.warning("RKMEImageSpecification is skipped because torch or torch-optimizer is not installed!") | |||||
| else: | |||||
| from .rkme import RKMEImageSpecification | |||||
| @@ -0,0 +1,12 @@ | |||||
| from ....logger import get_module_logger | |||||
| logger = get_module_logger("regular_image_spec_utils") | |||||
| def is_torch_optimizer_avaliable(): | |||||
| try: | |||||
| import torch_optimizer | |||||
| except ModuleNotFoundError as err: | |||||
| logger.warning("ModuleNotFoundError: torch_optimizer is not installed, please install pytorch!") | |||||
| return False | |||||
| return True | |||||
| @@ -1 +1,11 @@ | |||||
| from .rkme import RKMETableSpecification, RKMEStatSpecification | |||||
| from ....utils import is_torch_avaliable | |||||
| from ....logger import get_module_logger | |||||
| logger = get_module_logger("regular_table_spec") | |||||
| if not is_torch_avaliable(verbose=False): | |||||
| RKMETableSpecification = None | |||||
| RKMEStatSpecification = None | |||||
| logger.warning("RKMETableSpecification is skipped because torch is not installed!") | |||||
| else: | |||||
| from .rkme import RKMETableSpecification, RKMEStatSpecification | |||||
| @@ -1 +1,12 @@ | |||||
| from .rkme import RKMETextSpecification | |||||
| from .utils import is_sentence_transformers_avaliable | |||||
| from ....utils import is_torch_avaliable | |||||
| from ....logger import get_module_logger | |||||
| logger = get_module_logger("regular_table_spec") | |||||
| if not is_sentence_transformers_avaliable(verbose=True) or not is_torch_avaliable(verbose=False): | |||||
| RKMETextSpecification = None | |||||
| logger.warning("RKMETextSpecification is skipped because torch is not installed!") | |||||
| else: | |||||
| from .rkme import RKMETextSpecification | |||||
| @@ -0,0 +1,12 @@ | |||||
| from ....logger import get_module_logger | |||||
| logger = get_module_logger("regular_text_spec_utils") | |||||
| def is_sentence_transformers_avaliable(): | |||||
| try: | |||||
| import sentence_transformers | |||||
| except ModuleNotFoundError as err: | |||||
| logger.warning("ModuleNotFoundError: sentence_transformers is not installed, please install pytorch!") | |||||
| return False | |||||
| return True | |||||
| @@ -1,7 +1,7 @@ | |||||
| import os | import os | ||||
| import zipfile | import zipfile | ||||
| from .import_utils import is_torch_avaliable, is_lightgbm_avaliable, is_geatpy_avaliable | |||||
| from .import_utils import is_torch_avaliable | |||||
| from .module import get_module_by_module_path | from .module import get_module_by_module_path | ||||
| from .file import read_yaml_to_dict, save_dict_to_yaml | from .file import read_yaml_to_dict, save_dict_to_yaml | ||||
| @@ -10,23 +10,3 @@ def is_torch_avaliable(): | |||||
| logger.warning("ModuleNotFoundError: torch is not installed, please install pytorch!") | logger.warning("ModuleNotFoundError: torch is not installed, please install pytorch!") | ||||
| return False | return False | ||||
| return True | return True | ||||
| def is_lightgbm_avaliable(): | |||||
| try: | |||||
| import lightgbm | |||||
| except ModuleNotFoundError as err: | |||||
| logger.warning("ModuleNotFoundError: lightgbm is not installed, please install lightgbm!") | |||||
| return False | |||||
| return True | |||||
| def is_geatpy_avaliable(): | |||||
| try: | |||||
| import geatpy | |||||
| except ModuleNotFoundError as err: | |||||
| logger.warning( | |||||
| "ModuleNotFoundError: geatpy is not installed, please install geatpy (only support python version<3.11)!" | |||||
| ) | |||||
| return False | |||||
| return True | |||||
| @@ -54,7 +54,6 @@ REQUIRED = [ | |||||
| "numpy>=1.20.0", | "numpy>=1.20.0", | ||||
| "pandas>=0.25.1", | "pandas>=0.25.1", | ||||
| "scipy>=1.0.0", | "scipy>=1.0.0", | ||||
| "torch>=1.11.0", | |||||
| "cvxopt>=1.3.0", | "cvxopt>=1.3.0", | ||||
| "tqdm>=4.65.0", | "tqdm>=4.65.0", | ||||
| "scikit-learn>=0.22", | "scikit-learn>=0.22", | ||||
| @@ -68,8 +67,6 @@ REQUIRED = [ | |||||
| "shortuuid>=1.0.11", | "shortuuid>=1.0.11", | ||||
| "docker>=6.1.3", | "docker>=6.1.3", | ||||
| "rapidfuzz>=3.4.0", | "rapidfuzz>=3.4.0", | ||||
| "sentence_transformers>=2.2.2", | |||||
| "torch-optimizer>=0.3.0", | |||||
| "langdetect>=1.0.9", | "langdetect>=1.0.9", | ||||
| "huggingface-hub<0.18", | "huggingface-hub<0.18", | ||||
| "portalocker>=2.0.0", | "portalocker>=2.0.0", | ||||