From bc3c656eee31c838869a340d907d1020e54371ac Mon Sep 17 00:00:00 2001 From: jingxil Date: Fri, 21 Jul 2017 15:09:08 +0800 Subject: [PATCH] using beam_search during inferring --- README.md | 4 ++ README/loss-5.png | Bin 44456 -> 44803 bytes convex_hull.py | 14 ++++- pointer_net.py | 127 +++++++++++++++++++++++++++++++++------------- 4 files changed, 109 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index ebff558..97879ba 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,10 @@ training $ python convex_hull.py --ARG=VALUE +evaluating + +$ python convex_hull.py --forward_only=True --beam_width=VALUE --ARG=VALUE + visualizing $ tensorboard --logdir=DIR diff --git a/README/loss-5.png b/README/loss-5.png index b6d506accddcc8d546464f376cf5e871bfa2b393..67ee92e7c4202e18c6481c1748e09f12aed8f4ee 100644 GIT binary patch literal 44803 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 PfZsV2b7S188{z*2hNhYz literal 44456 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 1: - dec_cell = tf.contrib.rnn.MultiRNNCell([cell(rnn_size) for _ in range(num_layers-1)]+[attn_cell]) + dec_cell = tf.contrib.rnn.MultiRNNCell([cell(rnn_size) for _ in range(num_layers-1)]+[pointer_cell]) else: - dec_cell = attn_cell - + dec_cell = pointer_cell + # Different decoding scenario if self.forward_only: - raise NotImplementedError() + # Tile embedding_table + tile_embedding_table = tf.tile(tf.expand_dims(embedding_table,1),[1,beam_width,1,1]) + # Customize embedding_lookup_fn + def embedding_lookup(ids): + # Note the output value of the decoder only ranges 0 to max_input_sequence_len + # while embedding_table contains two more tokens' values + # To get around this, shift ids + # Shape: [batch_size,beam_width] + ids = ids+2 + # Shape: [batch_size,beam_width,vocab_size] + one_hot_ids = tf.cast(tf.one_hot(ids,self.vocab_size), dtype=tf.float32) + # Shape: [batch_size,beam_width,vocab_size,1] + one_hot_ids = tf.expand_dims(one_hot_ids,-1) + # Shape: [batch_size,beam_width,features_size] + next_inputs = tf.reduce_sum(one_hot_ids*tile_embedding_table, axis=2) + return next_inputs + # Do a little trick so that we can use 'BeamSearchDecoder' + shifted_START_ID = START_ID - 2 + shifted_END_ID = END_ID - 2 + # Beam Search Decoder + decoder = tf.contrib.seq2seq.BeamSearchDecoder(dec_cell, embedding_lookup, + tf.tile([shifted_START_ID],[self.batch_size]), shifted_END_ID, + dec_cell.zero_state(self.batch_size*beam_width,tf.float32), beam_width) + # Decode + outputs, _, _ = tf.contrib.seq2seq.dynamic_decode(decoder) + # predicted_ids + # Shape: [batch_size, max_output_sequence_len, beam_width] + predicted_ids = outputs.predicted_ids + # Transpose predicted_ids + # Shape: [batch_size, beam_width, max_output_sequence_len] + self.predicted_ids = tf.transpose(predicted_ids,[0,2,1]) else: # Get the maximum sequence length in current batch cur_batch_max_len = tf.reduce_max(dec_input_lens) @@ -118,15 +174,10 @@ def __init__(self, batch_size=128, max_input_sequence_len=5, max_output_sequence # Basic Decoder decoder = tf.contrib.seq2seq.BasicDecoder(dec_cell, helper, dec_cell.zero_state(self.batch_size,tf.float32)) # Decode - _, states, _ = tf.contrib.seq2seq.dynamic_decode(decoder,impute_finished=True) - # Locate the cell state containing logits - if num_layers>1: - state=states[-1] - else: - state=states - # Fetch logits - # Shape: [batch_size,cur_batch_max_len,max_input_sequence_len+1] - logits = tf.transpose(state.alignment_history.stack(), [1,0,2]) + outputs, _, _ = tf.contrib.seq2seq.dynamic_decode(decoder,impute_finished=True) + # logits + logits = outputs.rnn_output + # predicted_ids_with_logits self.predicted_ids_with_logits=tf.nn.top_k(logits) # Pad logits to the same shape as targets logits = tf.concat([logits,tf.ones([self.batch_size,self.max_output_sequence_len-cur_batch_max_len,self.max_input_sequence_len+1])],axis=1) @@ -149,8 +200,6 @@ def __init__(self, batch_size=128, max_input_sequence_len=5, max_output_sequence optimizer = tf.train.AdamOptimizer(self.init_learning_rate) # Update operator self.update = optimizer.apply_gradients(zip(clipped_gradients, parameters),global_step=self.global_step) - # Saver - self.saver = tf.train.Saver(tf.global_variables()) # Summarize tf.summary.scalar('loss',self.loss) for p in parameters: @@ -163,6 +212,9 @@ def __init__(self, batch_size=128, max_input_sequence_len=5, max_output_sequence self.debug_var = logits #/DEBUG PART + # Saver + self.saver = tf.train.Saver(tf.global_variables()) + def step(self, session, inputs, enc_input_weights, outputs=None, dec_input_weights=None): """Run a step of the model feeding the given inputs. @@ -174,8 +226,15 @@ def step(self, session, inputs, enc_input_weights, outputs=None, dec_input_weigh dec_input_weights: the weights of decoder input points. shape: [batch_size,max_output_sequence_len] Returns: - A triple + (training) + The summary + The total loss + The predicted ids with logits + The targets + The variable for debugging + (evaluation) + The predicted ids """ #Fill up inputs input_feed = {} @@ -187,7 +246,7 @@ def step(self, session, inputs, enc_input_weights, outputs=None, dec_input_weigh #Fill up outputs if self.forward_only: - raise NotImplementedError() + output_feed = [self.predicted_ids] else: output_feed = [self.update, self.summary_op, self.loss, self.predicted_ids_with_logits, self.shifted_targets, self.debug_var] @@ -197,6 +256,6 @@ def step(self, session, inputs, enc_input_weights, outputs=None, dec_input_weigh #Return if self.forward_only: - pass + return outputs[0] else: return outputs[1],outputs[2],outputs[3],outputs[4],outputs[5]