Пример #1
0
from utils.evaluator import Evaluator
from utils.batch import get_minibatch
from utils.constants import PAD
from utils.word2vec import load_embeddings
from utils.hyperparam import hyperparam_path
from models.slu.make_model import construct_models as slu_model_constructor
from models.nlg.make_model import construct_models as nlg_model_constructor
from models.language_model import LanguageModel as lm_constructor
from models.reward import RewardModel
from models.dual_learning import DualLearning
from scripts.decode import slu_decode, nlg_decode

task = 'dual_learning'

##### Arguments parsing and preparations #####
opt = init_args(params=sys.argv[1:], task=task)
exp_path = hyperparam_path(opt, task=task)
logger = set_logger(exp_path, testing=opt.testing)
set_random_seed(opt.seed)
slu_device, nlg_device = set_torch_device(opt.deviceIds[0]), set_torch_device(
    opt.deviceIds[1])
lm_device = nlg_device  # slu may use bert model
logger.info("Initialization finished ...")
logger.info("Parameters: " + str(json.dumps(vars(opt))))
logger.info("Output path is: %s" % (exp_path))
logger.info("Random seed is set to: %d" % (opt.seed))
logger.info("Use GPU with index %s as target slu device" % (opt.deviceIds[0])
            if opt.deviceIds[0] >= 0 else "Use CPU as target slu torch device")
logger.info("Use GPU with index %s as target nlg device" % (opt.deviceIds[1])
            if opt.deviceIds[1] >= 0 else "Use CPU as target nlg torch device")
Пример #2
0
#coding=utf8
import sys, os, time, json, gc
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from argparse import Namespace
from utils.args import init_args
from utils.hyperparams import hyperparam_path
from utils.initialization import *
from utils.example import Example
from utils.batch import Batch
from utils.optimization import set_optimizer
from model.model_utils import Registrable
from model.model_constructor import *

# initialization params, output path, logger, random seed and torch.device
args = init_args(sys.argv[1:])
exp_path = hyperparam_path(args)
logger = set_logger(exp_path, args.testing)
set_random_seed(args.seed)
device = set_torch_device(args.device)
logger.info("Initialization finished ...")
logger.info("Output path is %s" % (exp_path))
logger.info("Random seed is set to %d" % (args.seed))
logger.info("Use GPU with index %s" % (args.device) if args.device >= 0 else "Use CPU as target torch device")

# load dataset and vocabulary
start_time = time.time()
if args.read_model_path:
    params = json.load(open(os.path.join(args.read_model_path, 'params.json')), object_hook=lambda d: Namespace(**d))
    params.lazy_load = True
else:
    params = args