<h3 dir="auto">Environment info</h3>
<p dir="auto">Operating System:<br>
Linux Mint 17.3 3.19.0-32-generic<br>
Tensorflow Version 0.12.0-rc0 (<a href="https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc0-cp34-cp34m-linux_x86_64.whl" rel="nofollow">https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc0-cp34-cp34m-linux_x86_64.whl</a>)</p>
<h3 dir="auto">If possible, provide a minimal reproducible example (We usually don't have time to read hundreds of lines of your code)</h3>
<p dir="auto"><code class="notranslate">tf.split_v(tf.placeholder(tf.float32, shape=[10, 32, 32, 3]), [3,7], 0)</code><br>
The result is of shape (?, ?, ?, ?).</p>
<p dir="auto">However, when using split for equal length splits it shows the resulting shape:<br>
<code class="notranslate">tf.split(0, 2, tf.placeholder(tf.float32, shape=[10, 32, 32, 3]))</code></p>
<p dir="auto">The new split_v function introduced in 0.12rc0 does not correctly predict the shapes of the resulting tensors when the original tensor has an unknown dimension, resulting on the split dimension being of unknown size. For instance:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="tensor = tf.placeholder(tf.float32, [None, 12])
parts = tf.split_v(tensor, [6, 4, 2], split_dim=1)"><pre class="notranslate"><code class="notranslate">tensor = tf.placeholder(tf.float32, [None, 12])
parts = tf.split_v(tensor, [6, 4, 2], split_dim=1)
</code></pre></div>
<p dir="auto">This results in three tensors, all with shapes [?, ?], instead of the expected [?, 6], [?, 4] and [?, 2]. While at runtime the resulting tensors are of the right size, this makes it more difficult to debug the code during graph definition.</p>
<p dir="auto">EDIT: This also creates problems when combined with scan. Because scan expects fn to return tensors of the same shape as the initializers, it forces the use of a reshape just to clear the 'unknown' dimension.</p>