def model_predict(path_finish, path_like): Config["normal_config"]["pretrain"] = True Config["normal_config"]["pretrain_model_dir"] = path_finish engine_finish = ModelEngine(config=Config, model=NFFM) sample_generator = SampleGenerator() print() print("------------start testing finish--------------") test_loader = sample_generator.instance_a_loader(t="test") df_finish = engine_finish.predict(test_loader) print("------------finish testing -------------------") print("------------start testing like ----------------") Config["normal_config"]["pretrain_model_dir"] = path_like engine_like = ModelEngine(config=Config, model=NFFM) df_like = engine_like.predict(test_loader) df_finish["like_probability"] = df_like["pred_probability"] df_finish.columns = [ "uid", "item_id", "finish_probability", "like_probability" ] df_finish.to_csv(Config["normal_config"]["predict_file"] + Config["normal_config"]["model_name"], index=None, float_format="%.6f")
from data import SampleGenerator from config import Config from models_engine import ModelEngine from model.xDeepFM import xDeepFM from model.mlp import MLP # from model.DTFM import DTFM from model.nffm import NFFM from model.affm import AFFM engine = ModelEngine(config=Config, model=AFFM) sample_generator = SampleGenerator() for epoch in range(Config["training_config"]['num_epoch']): print('Epoch {} starts!'.format(epoch)) print('-' * 80) train_loader = sample_generator.instance_a_loader(t="train") engine.train_an_epoch(train_loader, epoch_id=epoch) # evaluation print() print("------------start evaluating-----------") evaluate_loader = sample_generator.instance_a_loader(t="val") auc = engine.evaluate(evaluate_loader, epoch_id=epoch) engine.save(epoch, auc=auc) # close hd5 file