Beispiel #1
0
)

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:
Beispiel #2
0
  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)
Beispiel #3
0
      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)