Source code for tigercontrol.models.core

# Model class
# Author: John Hallman

from tigercontrol import error
from tigercontrol.models.optimizers import Optimizer

# class for implementing algorithms with enforced modularity
[docs]class Model(object): spec = None def initialize(self, **kwargs): # initializes model parameters raise NotImplementedError def predict(self, x=None): # returns model prediction for given input raise NotImplementedError def update(self, **kwargs): # update parameters according to given loss and update rule raise NotImplementedError def _store_optimizer(self, optimizer, pred): if isinstance(optimizer, Optimizer): optimizer.set_predict(pred) self.optimizer = optimizer return if issubclass(optimizer, Optimizer): self.optimizer = optimizer(pred=pred) return raise error.InvalidInput("Optimizer input cannot be stored") def help(self): # prints information about this class and its methods raise NotImplementedError def __str__(self): if self.spec is None: return '<{} instance>'.format(type(self).__name__) else: return '<{}<{}>>'.format(type(self).__name__, self.spec.id) def __enter__(self): return self