コード例 #1
0
ファイル: test_algo.py プロジェクト: westhyena/buffalo
    def test05_topk_MT(self):
        set_log_level(2)
        data_opt = self.get_ml100k_mm_opt()
        opt = ALSOption().get_default_option()
        opt.d = 20
        opt.num_workers = 1
        als = ALS(opt, data_opt=data_opt)
        als.initialize()
        als.train()

        als.build_userid_map()
        all_keys = als._idmanager.userids
        start_t = time.time()
        naive = als.topk_recommendation(all_keys, topk=5)
        naive_elapsed = time.time() - start_t

        pals = ParALS(als)
        pals.num_workers = 4
        start_t = time.time()
        qkeys1, topks1, scores1 = pals.topk_recommendation(all_keys,
                                                           topk=5,
                                                           repr=True)
        par_elapsed = time.time() - start_t
        self.assertEqual(len(qkeys1), len(naive))
        for q, t in zip(qkeys1, topks1):
            self.assertEqual(naive[q], t)
        self.assertTrue(naive_elapsed > par_elapsed * 1.5)
コード例 #2
0
    def test06_topk_pool(self):
        set_log_level(2)
        data_opt = self.get_ml100k_mm_opt()
        opt = ALSOption().get_default_option()
        opt.d = 20
        opt.num_workers = 1
        als = ALS(opt, data_opt=data_opt)
        als.initialize()
        als.train()
        pals = ParALS(als)

        pool = np.array([i for i in range(5)], dtype=np.int32)
        als.build_userid_map()
        all_keys = als._idmanager.userids[::][:10]
        naive = als.topk_recommendation(all_keys, topk=10, pool=pool)
        qkeys1, topks1, scores1 = pals.topk_recommendation(all_keys, topk=10, pool=pool, repr=True)
        for q, t in zip(qkeys1, topks1):
            self.assertEqual(naive[q], t)