__init__.py 776 Bytes
Newer Older
Nianchen Deng's avatar
sync    
Nianchen Deng committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import importlib
import os

from model.base import BaseModel
from . import base


# Automatically import any python files this directory
package_dir = os.path.dirname(__file__)
package = os.path.basename(package_dir)
for file in os.listdir(package_dir):
    path = os.path.join(package_dir, file)
    if file.startswith('_') or file.startswith('.'):
        continue
    if file.endswith('.py') or os.path.isdir(path):
        model_name = file[:-3] if file.endswith('.py') else file
        importlib.import_module(f'{package}.{model_name}')


def get_class(class_name: str) -> type:
    return base.train_classes[class_name]


def get_trainer(model: BaseModel, **kwargs) -> base.Train:
Nianchen Deng's avatar
sync    
Nianchen Deng committed
25
    train_class = get_class(model.TrainerClass)
Nianchen Deng's avatar
sync    
Nianchen Deng committed
26
    return train_class(model, **kwargs)