code: def unzip(x, split_dim, current_length, num_splits=2, name=None):
    
    with tf.name_scope(name, 'unzip', [x]) as scope:
      x = tf.convert_to_tensor(x, name='x')
      # There is probably a more efficient way to do this.
      all_splits = tf.split(
          value=x, num_or_size_splits=current_length, axis=split_dim, name=scope)
      splits = [[] for _ in xrange(num_splits)]
      for i in xrange(current_length):
        splits[i % num_splits].append(all_splits[i])
      return [tf.concat(s, split_dim) for s in splits]
docs: Splits a tensor by unzipping along the split_dim.
  
    For example the following array split into 2 would be:
        [1, 2, 3, 4, 5, 6] -> [1, 3, 5], [2, 4, 6]
    and by 3:
        [1, 2, 3, 4] -> [1, 4], [2], [3]
  
    Args:
      x: The tensor to split.
      split_dim: The dimension to split along.
      current_length: Current length along the split_dim.
      num_splits: The number of splits.
      name: Optional name for this op.
    Returns:
      A length num_splits sequence.