コード例 #1
0
ファイル: main.py プロジェクト: shadowkun/SIF
        mse = mean_squared_error(test_queue[1], inferences)
        rmse = np.sqrt(mse)
        logging.info('rmse: %.4f[%.4f]' % (rmse, time() - start))

    elif args.mode == 'autoneural':
        start = time()
        if dim == 2:
            model = AutoNeural(num_users, num_items, args.embedding_dim,
                               args.weight_decay).cuda()
        elif dim == 3:
            model = AutoNeural_Triple(num_ps, num_qs, num_rs,
                                      args.embedding_dim,
                                      args.weight_decay).cuda()
        embedding_oprimizer = torch.optim.Adagrad(model.embedding_parameters(),
                                                  args.lr)
        mlp_optimizer = torch.optim.Adagrad(model.mlp_parameters(), args.lr)
        losses = []

        for train_epoch in range(args.train_epochs):
            if dim == 2:
                loss = train_single(train_queue, model, embedding_oprimizer,
                                    args)

                if train_epoch % 15000 == 0:
                    _ = train_single(valid_queue, model, mlp_optimizer, args)

                _ = train_single(valid_queue, model, mlp_optimizer, args)
                rmse = evaluate(model, test_queue)
            elif dim == 3:
                loss = train_single_triple(train_queue, model,
                                           embedding_oprimizer, args)