Example #1
0
model.add_output(name = 'output_1', input = 'dec1')
model.add_output(name = 'output_2', input = 'dec2')
model.add_output(name = 'output_3', input = 'dec3')
model.add_output(name = 'output_4', input = 'dec4')
optimizer = RMSprop(clipnorm = CLIP)
model.compile(loss = { 'output_1' : 'categorical_crossentropy', 'output_2' : 'categorical_crossentropy', 'output_3' : 'categorical_crossentropy', 'output_4' : 'categorical_crossentropy'}, optimizer= optimizer)

pat = 0
train_history = {'loss' : [], 'val_meteor' : []}
best_val_meteor = 0

print("saving stuff...")
with open( PREFIX + FOOTPRINT + '.arch', 'w') as outfile:
	json.dump(model.to_json(), outfile)

print("training model with {} parameters...".format(model.get_n_params()))
NB = len(b_X_tr)
for iteration in xrange(EPOCH):
	print('_' * 50)

	train_history['loss'] += [0]
	for j in xrange(NB):
		[X_tr] = b_X_tr[j]
		[Y_tr_1, Y_tr_2, Y_tr_3, Y_tr_4, Y_tr_shifted] = b_Y_tr[j]
		print('iteration {}/{} bucket {}/{}'.format(iteration+1,EPOCH, j+1,NB))

		eh = model.fit({'input_en' : X_tr , 'input_de' : Y_tr_shifted ,  'output_1' : Y_tr_1, 'output_2' : Y_tr_2, 'output_3' : Y_tr_3, 'output_4' : Y_tr_4}, batch_size = BATCH_SIZE, nb_epoch = 1, verbose = True)

		for key in ['loss']:
			train_history[key][-1] += eh.history[key][0]