title: tf.SequenceExample with multidimensional arrays
body: <p>In Tensorflow, I want to save a multidimensional array to a TFRecord. For example:</p>
  
  <pre><code>[[1, 2, 3], [1, 2], [3, 2, 1]]
  </code></pre>
  
  <p>As the task I am trying to solve is sequential, I am trying to use Tensorflow's <code>tf.train.SequenceExample()</code> and when writing the data I am successful in writing the data to a TFRecord file. However, when I try to load the data from the TFRecord file using <code>tf.parse_single_sequence_example</code>, I am greeted with a large number of cryptic errors:</p>
  
  <pre><code>W tensorflow/core/framework/op_kernel.cc:936] Invalid argument: Name: , Key: input_characters, Index: 1.  Number of int64 values != expected.  values size: 6 but output shape: []
  E tensorflow/core/client/tensor_c_api.cc:485] Name: , Key: input_characters, Index: 1.  Number of int64 values != expected.  values size: 6 but output shape: []
  </code></pre>
  
  <p>The function I am using to try to load my data is below:</p>
  
  <pre><code>def read_and_decode_single_example(filename):
  
      filename_queue = tf.train.string_input_producer([filename],
                                                  num_epochs=None)
  
      reader = tf.TFRecordReader()
      _, serialized_example = reader.read(filename_queue)
  
      context_features = {
           "length": tf.FixedLenFeature([], dtype=tf.int64)
      }
  
      sequence_features = {
           "input_characters": tf.FixedLenSequenceFeature([],           dtype=tf.int64),
           "output_characters": tf.FixedLenSequenceFeature([], dtype=tf.int64)
      }
  
      context_parsed, sequence_parsed = tf.parse_single_sequence_example(
      serialized=serialized_example,
      context_features=context_features,
      sequence_features=sequence_features
  )
  
  context = tf.contrib.learn.run_n(context_parsed, n=1, feed_dict=None)
  print context
  </code></pre>
  
  <p>The function that I am using to save the data is here:</p>
  
  <pre><code># http://www.wildml.com/2016/08/rnns-in-tensorflow-a-practical-guide-and-undocumented-features/
  def make_example(input_sequence, output_sequence):
      """
      Makes a single example from Python lists that follows the
      format of tf.train.SequenceExample.
      """
  
      example_sequence = tf.train.SequenceExample()
  
      # 3D length
      sequence_length = sum([len(word) for word in input_sequence])
      example_sequence.context.feature["length"].int64_list.value.append(sequence_length)
  
      input_characters = example_sequence.feature_lists.feature_list["input_characters"]
      output_characters = example_sequence.feature_lists.feature_list["output_characters"]
  
      for input_character, output_character in izip_longest(input_sequence,
                                                            output_sequence):
  
          # Extend seems to work, therefore it replaces append.
          if input_sequence is not None:
              input_characters.feature.add().int64_list.value.extend(input_character)
  
          if output_characters is not None:
              output_characters.feature.add().int64_list.value.extend(output_character)
  
      return example_sequence
  </code></pre>
  
  <p>Any help would be welcomed.</p>