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')
Ejemplo n.º 2
0
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)
Ejemplo n.º 4
0
        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.")