示例#1
0
def run_model(i, state):
    print('newID:', i, state, len(state))
    args.perf_file = os.path.join(directory, dataset + '_perf.txt')
    torch.cuda.empty_cache()
    # sleep to avoid multiple gpu occupy
    time.sleep(10*(i%args.parrel)+1)
    torch.cuda.set_device(select_gpu())

    model = BaseModel(n_ent, n_rel, args, state)
    tester_val = lambda: model.test_link(valid_data, valid_head_filter, valid_tail_filter)
    tester_tst = lambda: model.test_link(test_data, test_head_filter, test_tail_filter)
    best_mrr, best_str = model.train(train_data, tester_val, tester_tst)
    with open(args.perf_file, 'a') as f:
        print('ID:', i, 'structure:%s'%(str(state)), '\tvalid mrr', best_mrr)
        for s in state:
            f.write(str(s) + ' ')
        f.write('\t\tbest_performance: '+best_str)
    torch.cuda.empty_cache()
    return best_mrr
示例#2
0
        def run_kge(params):
            args.lr = params['lr']
            args.lamb = 10**params['lamb']
            args.decay_rate = params['decay_rate']
            args.n_batch = params['n_batch']
            args.n_dim = params['n_dim']
            plot_config(args)

            model = BaseModel(n_ent, n_rel, args, struct)
            tester_val = lambda: model.test_link(valid_data, valid_head_filter,
                                                 valid_tail_filter)
            tester_tst = lambda: model.test_link(test_data, test_head_filter,
                                                 test_tail_filter)
            best_mrr, best_str = model.train(train_data, tester_val,
                                             tester_tst)
            with open(args.perf_file, 'a') as f:
                print('structure:', struct, best_str)
                for s in struct:
                    f.write(str(s) + ' ')
                f.write(best_str + '\n')
            return {'loss': -best_mrr, 'status': STATUS_OK}
示例#3
0
        space4kge = {
            "lr": hp.uniform("lr", 0, 1),
            "lamb": hp.uniform("lamb", -5, 0),
            "decay_rate": hp.uniform("decay_rate", 0.99, 1.0),
            "n_batch": hp.choice("n_batch", [128, 256, 512, 1024]),
            "n_dim": hp.choice("n_dim", [64]),
        }

        trials = Trials()
        best = fmin(run_kge,
                    space4kge,
                    algo=partial(tpe.suggest, n_startup_jobs=30),
                    max_evals=200,
                    trials=trials)

    else:
        plot_config(args)
        model = BaseModel(n_ent, n_rel, args, struct)
        tester_val = lambda: model.test_link(valid_data, valid_head_filter,
                                             valid_tail_filter)
        tester_tst = lambda: model.test_link(test_data, test_head_filter,
                                             test_tail_filter)
        best_mrr, best_str = model.train(train_data, tester_val, tester_tst)

        with open(args.perf_file, 'a') as f:
            print('structure:', struct, best_str)
            for s in struct:
                f.write(str(s) + ' ')
            f.write('\t\tbest_performance: ' + best_str + '\n')