def babi_handler(data_dir, task_number): """ Handle for bAbI task. Args: data_dir (string) : Path to bAbI data directory. task_number (int) : The task ID from the bAbI dataset (1-20). Returns: BABI : Handler for bAbI task. """ task = task_list[task_number - 1] return BABI(path=data_dir, task=task, subset=subset)
choices=xrange(1, 21), help='the task ID to train/test on from bAbI dataset (1-20)') parser.add_argument('--rlayer_type', default='gru', choices=['gru', 'lstm'], help='type of recurrent layer to use (gru or lstm)') args = parser.parse_args(gen_be=False) args.batch_size = 32 task = task_list[args.task - 1] # setup backend be = gen_backend(**extract_valid_args(args, gen_backend)) # load the bAbI dataset babi = BABI(path=args.data_dir, task=task, subset=subset) train_set = QA(*babi.train) valid_set = QA(*babi.test) # recurrent layer parameters (default gru) rlayer_obj = GRU if args.rlayer_type == 'gru' else LSTM rlayer_params = dict(output_size=100, reset_cells=True, init=GlorotUniform(), init_inner=Orthonormal(0.5), activation=Tanh(), gate_activation=Logistic()) # if using lstm, swap the activation functions if args.rlayer_type == 'lstm': rlayer_params.update(dict(activation=Logistic(), gate_activation=Tanh()))