title: Tensorflow ValueError: All shapes must be fully defined: [TensorShape([Dimension(None), Dimension(None), Dimension(3)]), TensorShape([])
body: <p>I want to use batch to read image from file folder.But after decode,that might be some problems when I use <code>tf.train.batch</code>. Here is the code.</p>
  
  <pre><code>def get_batch(image, label, batch_size, capacity):
  
  image = tf.cast(image, tf.string)
  label = tf.cast(label, tf.int32)
  
  input_queue = tf.train.slice_input_producer([image, label])
  
  label = input_queue[1]
  image_contents = tf.read_file(input_queue[0])
  image = tf.image.decode_jpeg(image_contents, channels=3)
  image = tf.image.per_image_whitening(image) 
  
  image_batch, label_batch = tf.train.batch([image, label],
                                              batch_size = batch_size,
                                              num_threads = 8, 
                                              capacity = capacity)
  
  label_batch = tf.reshape(label_batch, [batch_size])
  image_batch = tf.cast(image_batch, tf.float32)
  
  return image_batch, label_batch
  </code></pre>
  
  <p>And the error said I haven't define some tensorshapes. I don't know how to do.Maybe I did't use decode in a proper way.Here is the error.</p>
  
  <pre><code>Traceback (most recent call last):
    File "input_data.py", line 118, in &lt;module&gt;
      image_batch, label_batch = get_batch(image_list, label_list, BATCH_SIZE, CAPACITY)
    File "input_data.py", line 90, in get_batch
      capacity = capacity)
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/input.py", line 538, in batch
      capacity=capacity, dtypes=types, shapes=shapes, shared_name=shared_name)
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/data_flow_ops.py", line 453, in __init__
      shapes = _as_shape_list(shapes, dtypes)
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/data_flow_ops.py", line 71, in _as_shape_list
      raise ValueError("All shapes must be fully defined: %s" % shapes)
  ValueError: All shapes must be fully defined: [TensorShape([Dimension(None), Dimension(None), Dimension(3)]), TensorShape([])]
  </code></pre>