def test_neumf_save_load(n_users, n_items): model_type = "gmf" ckpt_gmf = ".%s" % model_type if os.path.exists(ckpt_gmf): shutil.rmtree(ckpt_gmf) model = NCF(n_users=n_users, n_items=n_items, model_type=model_type, n_epochs=1) model.save(ckpt_gmf) P_gmf = model.sess.run(model.embedding_gmf_P) Q_gmf = model.sess.run(model.embedding_gmf_Q) del model model_type = "mlp" ckpt_mlp = ".%s" % model_type if os.path.exists(ckpt_mlp): shutil.rmtree(ckpt_mlp) model = NCF(n_users=n_users, n_items=n_items, model_type=model_type, n_epochs=1) model.save(".%s" % model_type) P_mlp = model.sess.run(model.embedding_mlp_P) Q_mlp = model.sess.run(model.embedding_mlp_Q) del model model_type = "neumf" model = NCF(n_users=n_users, n_items=n_items, model_type=model_type, n_epochs=1) model.load(gmf_dir=ckpt_gmf, mlp_dir=ckpt_mlp) P_gmf_ = model.sess.run(model.embedding_gmf_P) Q_gmf_ = model.sess.run(model.embedding_gmf_Q) P_mlp_ = model.sess.run(model.embedding_mlp_P) Q_mlp_ = model.sess.run(model.embedding_mlp_Q) assert np.array_equal(P_gmf, P_gmf_) assert np.array_equal(Q_gmf, Q_gmf_) assert np.array_equal(P_mlp, P_mlp_) assert np.array_equal(Q_mlp, Q_mlp_) if os.path.exists(ckpt_gmf): shutil.rmtree(ckpt_gmf) if os.path.exists(ckpt_mlp): shutil.rmtree(ckpt_mlp)
def test_neumf_save_load(n_users, n_items): model_type = "gmf" ckpt_gmf = ".%s" % model_type if os.path.exists(ckpt_gmf): shutil.rmtree(ckpt_gmf) model = NCF(n_users=n_users, n_items=n_items, model_type=model_type) model.save(ckpt_gmf) P_gmf = model.sess.run(model.embedding_gmf_P) Q_gmf = model.sess.run(model.embedding_gmf_Q) del model model_type = "mlp" ckpt_mlp = ".%s" % model_type if os.path.exists(ckpt_mlp): shutil.rmtree(ckpt_mlp) model = NCF(n_users=n_users, n_items=n_items, model_type=model_type) model.save(".%s" % model_type) P_mlp = model.sess.run(model.embedding_mlp_P) Q_mlp = model.sess.run(model.embedding_mlp_Q) del model model_type = "neumf" model = NCF(n_users=n_users, n_items=n_items, model_type=model_type) model.load(gmf_dir=ckpt_gmf, mlp_dir=ckpt_mlp) P_gmf_ = model.sess.run(model.embedding_gmf_P) Q_gmf_ = model.sess.run(model.embedding_gmf_Q) P_mlp_ = model.sess.run(model.embedding_mlp_P) Q_mlp_ = model.sess.run(model.embedding_mlp_Q) assert np.array_equal(P_gmf, P_gmf_) assert np.array_equal(Q_gmf, Q_gmf_) assert np.array_equal(Q_mlp, Q_mlp_) assert np.array_equal(Q_mlp, Q_mlp_) if os.path.exists(ckpt_gmf): shutil.rmtree(ckpt_gmf) if os.path.exists(ckpt_mlp): shutil.rmtree(ckpt_mlp)
def test_regular_save_load(model_type, n_users, n_items): ckpt = ".%s" % model_type if os.path.exists(ckpt): shutil.rmtree(ckpt) model = NCF(n_users=n_users, n_items=n_items, model_type=model_type, n_epochs=1, seed=SEED) model.save(ckpt) if model.model_type == "neumf": P = model.sess.run(model.embedding_gmf_P) Q = model.sess.run(model.embedding_mlp_Q) elif model.model_type == "gmf": P = model.sess.run(model.embedding_gmf_P) Q = model.sess.run(model.embedding_gmf_Q) elif model.model_type == "mlp": P = model.sess.run(model.embedding_mlp_P) Q = model.sess.run(model.embedding_mlp_Q) del model model = NCF(n_users=n_users, n_items=n_items, model_type=model_type, n_epochs=1, seed=SEED) if model.model_type == "neumf": model.load(neumf_dir=ckpt) P_ = model.sess.run(model.embedding_gmf_P) Q_ = model.sess.run(model.embedding_mlp_Q) elif model.model_type == "gmf": model.load(gmf_dir=ckpt) P_ = model.sess.run(model.embedding_gmf_P) Q_ = model.sess.run(model.embedding_gmf_Q) elif model.model_type == "mlp": model.load(mlp_dir=ckpt) P_ = model.sess.run(model.embedding_mlp_P) Q_ = model.sess.run(model.embedding_mlp_Q) # test load function assert np.array_equal(P, P_) assert np.array_equal(Q, Q_) if os.path.exists(ckpt): shutil.rmtree(ckpt)
def test_regular_save_load(model_type, n_users, n_items): ckpt = ".%s" % model_type if os.path.exists(ckpt): shutil.rmtree(ckpt) model = NCF(n_users=n_users, n_items=n_items, model_type=model_type) model.save(ckpt) if model.model_type == "neumf": P = model.sess.run(model.embedding_gmf_P) Q = model.sess.run(model.embedding_mlp_Q) elif model.model_type == "gmf": P = model.sess.run(model.embedding_gmf_P) Q = model.sess.run(model.embedding_gmf_Q) elif model.model_type == "mlp": P = model.sess.run(model.embedding_mlp_P) Q = model.sess.run(model.embedding_mlp_Q) del model model = NCF(n_users=n_users, n_items=n_items, model_type=model_type) if model.model_type == "neumf": model.load(neumf_dir=ckpt) P_ = model.sess.run(model.embedding_gmf_P) Q_ = model.sess.run(model.embedding_mlp_Q) elif model.model_type == "gmf": model.load(gmf_dir=ckpt) P_ = model.sess.run(model.embedding_gmf_P) Q_ = model.sess.run(model.embedding_gmf_Q) elif model.model_type == "mlp": model.load(mlp_dir=ckpt) P_ = model.sess.run(model.embedding_mlp_P) Q_ = model.sess.run(model.embedding_mlp_Q) # test load function assert np.array_equal(P, P_) assert np.array_equal(Q, Q_) if os.path.exists(ckpt): shutil.rmtree(ckpt)