コード例 #1
0
def run_step(step_num):
    if step_num == 0:
        model = models.RandomModel()
    elif step_num == 1:
        model = models.PriorModel()
    elif step_num == 2:
        model = models.SupModel()
    elif step_num == 3:
        print('Training will take 6-7 minutes')
        model = models.EmbedModel()
    elif step_num == 4:
        print('Training will take 30-40 minutes')
        gru = models.GRU()
        model = models.NeuralModel(gru)
    else:
        raise ValueError('Invalid step number')
    trainset = Dataset.get('train')
    num_train_candidates = Candidate.get_count()
    model.fit(trainset, num_train_candidates)
    print('Training finished!')

    for dsname in Dataset.ds2path.keys():
        ds = Dataset.get(dsname)
        pred_cids = model.predict(ds)
        print(dsname, ds.eval(pred_cids))
コード例 #2
0
def main():
    args = docopt(__doc__, options_first=True)

    available_models = {
        "user": models.UserWasdModel(),
        "random": models.RandomModel(),
        "knn": models.KnnModel()
    }

    width = int(args["--width"])
    height = int(args["--height"])
    if args["--list-models"]:
        print("user, random, knn")
    elif args["play"]:
        log = create_log_file(args["--output"]) if args["--save"] else None
        simulate(width, height, models.UserWasdModel(), log, display=True)
    elif args["simulate"]:
        for _ in range(int(args["NUM_GAMES"])):
            log = create_log_file(args["--output"]) if args["--save"] else None
            simulate(width, height, available_models[args["--model"]], log,
                     args["--display"])
コード例 #3
0
ファイル: main.py プロジェクト: luozhiSun/myfirstpaper
for i in range(7):
    maze[16][11+i]=1
maze[17][11]=1

game = Maze(maze)
print(maze.size)

# only show the maze
if test == Test.SHOW_MAZE_ONLY:
    game.render(Render.MOVES)
    game.reset()

# play using random model
if test == Test.RANDOM_MODEL:
    game.render(Render.MOVES)
    model = models.RandomModel(game)
    game.play(model, start_cell=(0, 0))

# train using tabular Q-learning
if test == Test.Q_LEARNING:
    game.render(Render.TRAINING)
    model = models.QTableModel(game, name="QTableModel")
    h, w, _, _ = model.train(discount=0.90, exploration_rate=0.10, learning_rate=0.10, episodes=500,
                             stop_at_convergence=True)


# train using tabular Q-learning and an eligibility trace (aka TD-lamba)
if test == Test.Q_ELIGIBILITY:
    game.render(Render.TRAINING)
    model = models.QTableTraceModel(game)
    h, w, _, _ = model.train(discount=0.90, exploration_rate=0.10, learning_rate=0.10, episodes=200,
コード例 #4
0
import models
from dataset import Dataset, KnowledgeBase


if __name__ == '__main__':
    model = models.RandomModel()
    trainset = Dataset.get('train')
    model.fit(trainset)
    print('【Random Model】')
    for dsname in Dataset.ds2path.keys():
        ds = Dataset.get(dsname)
        pred_cids = model.predict(ds)
        print(dsname, ds.eval(pred_cids))
    print('--------------------')

    model = models.PriorModel()
    trainset = Dataset.get('train')
    model.fit(trainset)
    print('【Prior Probability Model】')
    for dsname in Dataset.ds2path.keys():
        ds = Dataset.get(dsname)
        pred_cids = model.predict(ds)
        print(dsname, ds.eval(pred_cids))
    print('--------------------')

    model = models.SupModel()
    trainset = Dataset.get('train')
    model.fit(trainset)
    print('【Supervised Model】')
    for dsname in Dataset.ds2path.keys():
        ds = Dataset.get(dsname)