) vocab_size = len(w_ind) ont_size = len(c_ind) comp_starttime = time.time() event_ae = EventAE( num_args, vocab_size, ont_size, args.hyp_hidden_size, wc_hidden_sizes, cc_hidden_sizes, word_dim=args.word_dim, concept_dim=args.concept_dim, word_rep_param=args.change_word_rep, hyp_model_type=args.hyp_model_type, wc_pref_model_type=args.wc_pref_model_type, cc_pref_model_type=args.cc_pref_model_type, rec_model_type=args.rec_model_type, init_hyp_strengths=init_hyp_strengths, relaxed=args.use_relaxation, no_hyp=args.no_hyp, wc_lr_wp_rank=args.wc_lr_wp_rank, cc_lr_wp_rank=args.cc_lr_wp_rank, ) if use_pretrained_wordrep: print >> sys.stderr, "Using pretrained word representations from %s" % (args.pt_rep) num_words_covered = 0 init_wordrep = event_ae.vocab_rep.get_value() for word in w_ind:
print >>vocab_file, w, ind vocab_file.close() ont_file = codecs.open("ont.txt", "w", "utf-8") for c, ind in c_ind.items(): print >>ont_file, c, ind ont_file.close() rev_w_ind = {ind:word for word, ind in w_ind.items()} rev_c_ind = {ind:concept for concept, ind in c_ind.items()} train_data = zip(x_data, y_s_data) sanity_test_data = random.sample(train_data, len(train_data)/10) vocab_size = len(w_ind) ont_size = len(c_ind) event_ae = EventAE(num_args, vocab_size, ont_size, hyp_hidden_size, wc_hidden_sizes, cc_hidden_sizes) eaes = [copy.deepcopy(event_ae) for _ in range(num_procs)] part_train_funcs = [eae.get_train_func(learning_rate) for eae in eaes] #train_func = event_ae.get_train_func(learning_rate) post_score_func = event_ae.get_posterior_func() def synchronize_param(): all_repr_params = [ [param.get_value() for param in eae.repr_params] for eae in eaes ] avg_repr_params = [numpy.mean(param, axis=0) for param in zip(*all_repr_params)] event_ae.set_repr_params(avg_repr_params) for eae in eaes: eae.set_repr_params(avg_repr_params) all_hyp_params = [ [param.get_value() for param in eae.hyp_model.get_params()] for eae in eaes ] avg_hyp_params = [numpy.mean(param, axis=0) for param in zip(*all_hyp_params)] event_ae.hyp_model.set_params(avg_hyp_params)
for y_ind in y_datum: if y_ind not in test_train_ont_map: all_present = False ignored_y_cands += 1 break fixed_y.append(test_train_ont_map[y_ind]) if all_present: fixed_y_s.append(fixed_y) #fixed_y_s = [[test_train_ont_map[ind] for ind in y_datum] for y_datum in y_s_datum] fixed_data.append((fixed_x, fixed_y_s)) print >>sys.stderr, "Ignored an average of %f y cands per data point"%(float(ignored_y_cands)/len(fixed_data)) print >>sys.stderr, len(x_data), len(y_s_data), len(fixed_data) event_ae = EventAE(num_args, vocab_size, ont_size, hyp_hidden_size, wc_hidden_sizes, cc_hidden_sizes, relaxed=use_relaxation, no_hyp=args.no_hyp, wc_pref_model_type=args.wc_pref_model_type, cc_pref_model_type=args.cc_pref_model_type, rec_model_type=args.rec_model_type, init_hyp_strengths=init_hyp_strengths) #for i, param in enumerate(repr_params): # event_ae.repr_params[i].set_value(param) event_ae.vocab_rep.set_value(vocab_rep) event_ae.ont_rep.set_value(ont_rep) if not args.no_hyp: event_ae.hyp_model.set_params(hyp_params) for i, param_dict in enumerate(wcp_params): for j in param_dict: event_ae.wc_pref_models[i][j].set_params(param_dict[j]) if not use_relaxation: for i, params in enumerate(ccp_params): event_ae.cc_pref_models[i].set_params(params) event_ae.rec_model.set_params(rec_params)