def online(): # INIT dr = Datareader(mode='online', only_load=True, verbose=False) sb = Submitter(dr) # LOAD AND COMBINE eurm_lele = sparse.load_npz( ROOT_DIR + '/data/jess/ensembled_CLUSTERARTISTS_CREATIVA_cat3-4-5-8-10_online.npz' ) eurm_std = sparse.load_npz(ROOT_DIR + '/data/jess/ensembled_creativeFIRE_online.npz') eurm_ens = combine_two_eurms(eurm_lele, eurm_std, cat_first=[3, 4, 5, 8, 10]) # LOAD MATRICES # eurm_ens = sparse.load_npz(ROOT_DIR + '/data/ensembled_creativeFIRE_online.npz') sim = sparse.load_npz(ROOT_DIR + '/data/sim_online.npz') # HOLEBOOST hb = HoleBoost(similarity=sim, eurm=eurm_ens, datareader=dr, norm=norm_l1_row) eurm_ens = hb.boost_eurm(categories=[8], k=300, gamma=1) hb = HoleBoost(similarity=sim, eurm=eurm_ens, datareader=dr, norm=norm_l1_row) eurm_ens = hb.boost_eurm(categories=[10], k=150, gamma=1) # TAILBOOST tb = TailBoost(similarity=sim, eurm=eurm_ens, datareader=dr, norm=norm_l2_row) eurm_ens = tb.boost_eurm(categories=[9, 7, 6, 5], last_tracks=[10, 3, 3, 3], k=[100, 80, 100, 100], gamma=[0.01, 0.01, 0.01, 0.01]) # ALBUMBOOST ab = AlbumBoost(dr, eurm_ens) eurm_ens = ab.boost_eurm(categories=[3, 4, 7, 9], gamma=2, top_k=[3, 3, 10, 40]) # MATCHBOOST # mb = MatchBoost(datareader=dr, eurm=eurm_ens, top_k_alb=5000, top_k_art=10000) # eurm_ens, pids = mb.boost_eurm(categories='all', k_art=20, k_alb=20, gamma_art=1.0, gamma_alb=1.0) # SUBMISSION rec_list = eurm_to_recommendation_list_submission(eurm_ens, datareader=dr) sb.submit(rec_list, name='ens_30_june_jess+lele_boosts', track='creative')
def main(argv): sbatch_cfg = { # Account name 'account': 'rrg-whitem', # Job name 'job-name': 'catcher', # Job time 'time': '0-10:00:00', # GPU/CPU type '--cpus-per-task': 1, # Memory 'mem-per-cpu': '2000M', # Email address 'mail-user': '******' } # sbatch configs backup for different games # sbatch_cfg['job-name'], sbatch_cfg['time'], sbatch_cfg['mem-per-cpu'] = 'catcher', '0-10:00:00', '2000M' # sbatch_cfg['job-name'], sbatch_cfg['time'], sbatch_cfg['mem-per-cpu'] = 'copter', '0-05:00:00', '2000M' # sbatch_cfg['job-name'], sbatch_cfg['time'], sbatch_cfg['mem-per-cpu'] = 'lunar', '0-07:00:00', '2000M' # sbatch_cfg['job-name'], sbatch_cfg['time'], sbatch_cfg['mem-per-cpu'] = 'minatar', '1-08:00:00', '4000M' general_cfg = { # User name 'user': '******', # Sbatch script path 'script-path': './sbatch.sh', # Check time interval in minutes 'check-time-interval': 5, # Clusters info: {name: capacity} 'clusters': { 'Cedar': 3000 }, # Job indexes list 'job-list': list(range(1, 30 + 1)) } make_dir(f"output/{sbatch_cfg['job-name']}") submitter = Submitter(general_cfg, sbatch_cfg) submitter.submit()
def submission(boost, eurm_ens, sim, name): """ Function to create a submission from a eurm with or without boosts. :param boost: apply boosts :param eurm_ens: eurm from ensemble (10k x 2.2M) :param sim: similarity matrix (tracks x tracks) :param name: name of the submission """ # INIT dr = Datareader(mode='online', only_load=True, verbose=False) sb = Submitter(dr) if boost: # HOLEBOOST hb = HoleBoost(similarity=sim, eurm=eurm_ens, datareader=dr, norm=norm_l1_row) eurm_ens = hb.boost_eurm(categories=[8, 10], k=300, gamma=5) # TAILBOOST tb = TailBoost(similarity=sim, eurm=eurm_ens, datareader=dr, norm=norm_l2_row) eurm_ens = tb.boost_eurm(categories=[9, 7, 6, 5], last_tracks=[10, 3, 3, 3], k=[100, 80, 100, 100], gamma=[0.01, 0.01, 0.01, 0.01]) # ALBUMBOOST ab = AlbumBoost(dr, eurm_ens) eurm_ens = ab.boost_eurm(categories=[3, 4, 7, 9], gamma=2, top_k=[3, 3, 10, 40]) # SUBMISSION rec_list = eurm_to_recommendation_list_submission(eurm_ens, datareader=dr) sb.submit(rec_list, name=name)
urm = dr.get_urm() pid = dr.get_test_pids() #Fitting data rec.fit(urm, pid) #Computing similarity/model rec.compute_model(top_k=knn, sm_type=sm.TVERSKY, shrink=200, alpha=0.1, beta=1, binary=True, verbose=True) #Computing ratings rec.compute_rating(top_k=topk, verbose=True, small=True) #submission and saving sps.save_npz(complete_name + ".npz", rec.eurm) sb = Submitter(dr) sb.submit(recommendation_list=eurm_to_recommendation_list_submission( rec.eurm), name=complete_name, track="main", verify=True, gzipped=True) else: print("invalid mode.")