Build training graph
train_graph = tf.Graph() | |
with train_graph.as_default(): | |
vocab_size = len(int_to_vocab) | |
input_text, targets, lr = get_inputs() | |
input_data_shape = tf.shape(input_text) | |
cell, initial_state = get_init_cell(input_data_shape[0], rnn_size) | |
logits, final_state = build_nn(cell, rnn_size, input_text, vocab_size, embed_dim) | |
# Probabilities for generating words | |
probs = tf.nn.softmax(logits, name='probs') | |
# Loss function | |
cost = seq2seq.sequence_loss( | |
logits, | |
targets, | |
tf.ones([input_data_shape[0], input_data_shape[1]])) | |
# Optimizer | |
optimizer = tf.train.AdamOptimizer(lr) | |
# Gradient Clipping | |
gradients = optimizer.compute_gradients(cost) | |
capped_gradients = [(tf.clip_by_value(grad, -1., 1.), var) for grad, var in gradients if grad is not None] | |
train_op = optimizer.apply_gradients(capped_gradients) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment