Source code for src.ml_helper.training

import hashlib

from sqlalchemy import func

from .model import Session, Model, Epoch


[docs]def _commit_object(obj): session = Session() session.add(obj) session.commit()
[docs]def register_model_in_db(model_id, params): model = Model( id=model_id, params=params, ) _commit_object(model)
[docs]def register_epoch_in_db(model_id, epoch_number, **kwargs): epoch_result = Epoch( model_id=model_id, number=epoch_number, **kwargs, ) _commit_object(epoch_result)
[docs]def retrieve_best_model_params(): session = Session() result = session.query(Model, func.max(Epoch.eval_F1))\ .join(Epoch)\ .group_by(Model.id)\ .order_by(Epoch.eval_F1.desc())\ .first() return dict( model_name=result[0].model_name, model_params=result[0].model_params, optimizer_name=result[0].optimizer_name, optimizer_params=result[0].optimizer_params, best_eval_f1_score=result[-1]
)
[docs]def hash_parameters(params): params_hash = hashlib.sha256(str(params).encode()).hexdigest() return params_hash
[docs]def delete_model(model_id): session = Session() session.query(Model).filter_by(id=model_id).delete() session.query(Epoch).filter_by(model_id=model_id).delete() session.commit()