Source code for langml.baselines

# -*- coding: utf-8 -*-

from abc import ABCMeta, abstractmethod
from typing import Dict, Any, Optional


[docs]class BaselineModel(metaclass=ABCMeta): @abstractmethod
[docs] def build_model(self, *args, **kwargs): raise NotImplementedError
[docs]class BaseDataLoader(metaclass=ABCMeta): @staticmethod @abstractmethod
[docs] def load_data(): raise NotImplementedError
@abstractmethod
[docs] def make_iter(self, random: bool = False): raise NotImplementedError
@abstractmethod
[docs] def __len__(self): raise NotImplementedError
[docs] def __call__(self, random: bool = False): while True: for inputs, labels in self.make_iter(random=random): yield inputs, labels
[docs]class Parameters: """ Hyper-Parameters """ def __init__(self, data: Optional[Dict] = None): if data is not None: for name, value in data.items(): setattr(self, name, self._wrap(value))
[docs] def _wrap(self, value: Any): if isinstance(value, (tuple, list, set, frozenset)): return type(value)([self._wrap(v) for v in value]) else: return Parameters(value) if isinstance(value, dict) else value
[docs] def add(self, name, value): setattr(self, name, value)