Exemplo n.º 1
0
    # Load dictionary
    tokenizer_description = None
    if config["inputs"]["description"]:
        logger.info('Loading dictionary Description......')
        tokenizer_description = GWTokenizer(os.path.join(args.data_dir,args.dict_file_description),question=False)

    # Build Network
    logger.info('Building network..')
    if tokenizer_description != None:
        network = OracleNetwork(config, num_words_question=tokenizer.no_words,num_words_description=tokenizer_description.no_words)
    else: 
        network = OracleNetwork(config, num_words_question=tokenizer.no_words,num_words_description=None)

    # Build Optimizer
    logger.info('Building optimizer..')
    optimizer, outputs = create_optimizer(network, config, finetune=finetune)
    best_param = network.get_predict()
    ##############################
    #  START  TRAINING           
    #############################
    logger.info("Start training .......")

    # create a saver to store/load checkpoint
    saver = tf.train.Saver()
    resnet_saver = None

    logger.info("saver done !")

    cpu_pool = Pool(args.no_thread, maxtasksperchild=5000)
    gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=args.gpu_ratio)
Exemplo n.º 2
0
    logger.info('Loading data..')
    trainset = Dataset(args.data_dir, "train", image_builder, crop_builder)
    validset = Dataset(args.data_dir, "valid", image_builder, crop_builder)
    testset = Dataset(args.data_dir, "test", image_builder, crop_builder)

    # Load dictionary
    logger.info('Loading dictionary..')
    tokenizer = GWTokenizer(os.path.join(args.data_dir, args.dict_file))

    # Build Network
    logger.info('Building network..')
    network = GuesserNetwork(config['model'], num_words=tokenizer.no_words)

    # Build Optimizer
    logger.info('Building optimizer..')
    optimizer, outputs = create_optimizer(network, config["optimizer"])

    ###############################
    #  START  TRAINING
    #############################

    # Load config
    batch_size = config['model']['batch_size']
    no_epoch = config["optimizer"]["no_epoch"]

    # create a saver to store/load checkpoint
    saver = tf.train.Saver()

    # Retrieve only resnet variabes
    if use_resnet:
        resnet_saver = create_resnet_saver([network])
Exemplo n.º 3
0
    guesser_var = [v for v in tf.global_variables() if "guesser" in v.name]
    guesser_saver = tf.train.Saver(var_list=guesser_var)

    loop_saver = tf.train.Saver(allow_empty=False)

    ###############################
    #  REINFORCE OPTIMIZER
    #############################

    logger.info('Building optimizer..')

    pg_variables = [v for v in tf.trainable_variables() if "qgen" in v.name and 'rl_baseline' not in v.name]
    baseline_variables = [v for v in tf.trainable_variables() if "qgen" in v.name and 'rl_baseline' in v.name]

    pg_optimize, _ = create_optimizer(qgen_network, qgen_network.policy_gradient_loss, loop_config,
                                   var_list=pg_variables,
                                   optim=tf.train.GradientDescentOptimizer)
    baseline_optimize, _= create_optimizer(qgen_network, qgen_network.baseline_loss, loop_config,
                                         var_list=baseline_variables,
                                         optim=tf.train.GradientDescentOptimizer,
                                         apply_update_ops=False)

    optimizer = [pg_optimize, baseline_optimize]

    ###############################
    #  START TRAINING
    #############################

    # Load config
    batch_size = loop_config['optimizer']['batch_size']
    no_epoch = loop_config["optimizer"]["no_epoch"]
Exemplo n.º 4
0
    validset = Dataset(args.data_dir, "valid", image_loader, crop_loader)
    testset = Dataset(args.data_dir, "test", image_loader, crop_loader)

    # Load dictionary
    logger.info('Loading dictionary..')
    tokenizer = GWTokenizer(os.path.join(args.data_dir, args.dict_file))

    # Build Network
    logger.info('Building network..')
    network = QGenNetworkLSTM(config["model"],
                              num_words=tokenizer.no_words,
                              policy_gradient=False)

    # Build Optimizer
    logger.info('Building optimizer..')
    optimizer, outputs = create_optimizer(network, network.ml_loss, config)

    ###############################
    #  START TRAINING
    #############################

    # Load config
    batch_size = config['optimizer']['batch_size']
    no_epoch = config["optimizer"]["no_epoch"]

    # create a saver to store/load checkpoint
    saver = tf.train.Saver()

    # CPU/GPU option
    cpu_pool = Pool(args.no_thread, maxtasksperchild=1000)
    gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=args.gpu_ratio)
Exemplo n.º 5
0
                       rcnn, args.no_games_to_load)
    testset = Dataset(args.data_dir, "test", image_builder, crop_builder, rcnn,
                      args.no_games_to_load)

    # Load dictionary
    logger.info('Loading dictionary..')
    tokenizer = GWTokenizer(args.dict_file)

    # Build Network
    logger.info('Building network..')
    network, batchifier_cstor = create_qgen(config["model"],
                                            num_words=tokenizer.no_words)

    # Build Optimizer
    logger.info('Building optimizer..')
    optimizer, outputs = create_optimizer(
        network, config["optimizer"])  # output:[loss, accuracy]

    ###############################
    #  START  TRAINING
    #############################

    # create a saver to store/load checkpoint
    saver = tf.train.Saver()

    # CPU/GPU option
    config_gpu = tf.ConfigProto()
    config_gpu.gpu_options.allow_growth = True

    with tf.Session(config=config_gpu) as sess:

        sources = network.get_sources(sess)
    oracle_var = [v for v in tf.global_variables() if "oracle" in v.name]
    oracle_saver = tf.train.Saver(var_list=oracle_var)

    guesser_network, guesser_batchifier_cstor, guesser_listener = create_guesser(guesser_config["model"], num_words=tokenizer.no_words)
    guesser_var = [v for v in tf.global_variables() if "guesser" in v.name]
    guesser_saver = tf.train.Saver(var_list=guesser_var)

    loop_saver = tf.train.Saver(allow_empty=False)

    ###############################
    #  REINFORCE OPTIMIZER
    #############################

    logger.info('Building optimizer..')
    optimizer, _ = create_optimizer(qgen_network, loop_config["optimizer"],
                                    optim_cst=eval("tf.train." + loop_config["optimizer"]["name"]),
                                    accumulate_gradient=qgen_network.is_seq2seq())

    ###############################
    #  START TRAINING
    #############################

    # Load config
    batch_size = loop_config['optimizer']['batch_size']
    no_epoch = loop_config["optimizer"]["no_epoch"]

    # mode_to_evaluate = ["sampling", "beam"]
    mode_to_evaluate = ["greedy"]
    if args.evaluate_all:
        mode_to_evaluate = ["greedy", "sampling", "beam"]
Exemplo n.º 7
0
                             which_set="test",
                             dataset=args.dataset,
                             split_by=args.split_by,
                             image_builder=image_builder,
                             crop_builder=crop_builder,
                             games_to_load=args.no_games_to_load)

    # Build Network
    logger.info('Building network..')
    network = create_network(config=config["model"],
                             no_words=tokenizer.no_words)

    # Build Optimizer
    logger.info('Building optimizer..')
    optimize, outputs = create_optimizer(network,
                                         config["optimizer"],
                                         finetune=finetune)

    ###############################
    #  START  TRAINING
    #############################

    # create a saver to store/load checkpoint
    saver = tf.train.Saver()

    gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=args.gpu_ratio)

    with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) as sess:

        # retrieve incoming sources
        sources = network.get_sources(sess)