code: def generate_string(self, initial_logits, initial_state, sequence_length):
      
  
      current_logits = initial_logits
      current_state = initial_state
  
      generated_letters = []
      for _ in range(sequence_length):
        # Sample a character index from distribution.
        char_index = tf.squeeze(tf.multinomial(current_logits, 1))
        char_one_hot = tf.one_hot(char_index, self._output_size, 1.0, 0.0)
        generated_letters.append(char_one_hot)
  
        # Feed character back into the deep_lstm.
        gen_out_seq, current_state = self._core(
            tf.nn.relu(self._embed_module(char_one_hot)),
            current_state)
        current_logits = self._output_module(gen_out_seq)
  
      generated_string = tf.stack(generated_letters)
  
      return generated_string
docs: Builds sub-graph to generate a string, sampled from the model.
  
      Args:
        initial_logits: Starting logits to sample from.
        initial_state: Starting state for the RNN core.
        sequence_length: Number of characters to sample.
  
      Returns:
        A Tensor of characters, with dimensions `[sequence_length, batch_size,
        output_size]`.