def initialize_model(gpu, vocab_size, v_vec, emb_requires_grad, args): emb_dim = args.emb_dim h_dim = None class_num = 2 is_gpu = True if gpu == -1: is_gpu = False if args.emb_type == 'ELMo' or args.emb_type == 'ELMoForManyLangs': bilstm = BiLSTM(emb_dim, h_dim, class_num, vocab_size, is_gpu, v_vec, emb_type=args.emb_type, elmo_model_dir=args.emb_path) elif args.emb_type == 'None': bilstm = BiLSTM(emb_dim, h_dim, class_num, vocab_size, is_gpu, v_vec, emb_type=args.emb_type) else: bilstm = BiLSTM(emb_dim, h_dim, class_num, vocab_size, is_gpu, v_vec, emb_type=args.emb_type) if is_gpu: bilstm = bilstm.cuda() for m in bilstm.modules(): print(m.__class__.__name__) weights_init(m) if args.emb_type != 'ELMo' and args.emb_type != 'ELMoForManyLangs' and args.emb_type != 'None': for param in bilstm.word_embed.parameters(): param.requires_grad = emb_requires_grad return bilstm
def initialize_model(gpu, vocab_size, v_vec, dropout_ratio, n_layers, model, statistics_of_each_case_type): is_gpu = True if gpu == -1: is_gpu = False if model == 'Base' or model == 'FT': bilstm = BiLSTM(vocab_size, v_vec, dropout_ratio, n_layers, gpu=is_gpu) elif model == 'OneH': bilstm = OneHot(vocab_size, v_vec, dropout_ratio, n_layers, gpu=is_gpu) elif model == 'FA': bilstm = FeatureAugmentation(vocab_size, v_vec, dropout_ratio, n_layers, gpu=is_gpu) elif model == 'CPS': bilstm = ClassProbabilityShift( vocab_size, v_vec, dropout_ratio, n_layers, statistics_of_each_case_type=statistics_of_each_case_type, gpu=is_gpu) elif model == 'MIX': bilstm = Mixture( vocab_size, v_vec, dropout_ratio, n_layers, statistics_of_each_case_type=statistics_of_each_case_type, gpu=is_gpu) if is_gpu: bilstm = bilstm.cuda() for m in bilstm.modules(): print(m.__class__.__name__) weights_init(m) return bilstm