title: TensorFlow: tf.case() & f_default should do nothing
body: <p>I'm working on a network with 4 class-specific autoencoders (3 layer feedforward), and within the training iteration, there is a case check to decide, which autoencoder has to be updated: </p>
  
  <pre><code>def f(k): return tf.train.AdamOptimizer(learning_rate=lernrate).minimize(Cost_List[k]), n_List[k].assign_add(1.0), Cost_List[k]
  
  def g(): ???
  
  nothing = g()
  
  
  
  min_index = tf.argmin(Cost_List, 0) 
  
  Case_0 = (tf.equal(min_index,0), lambda: f(0))
  Case_1 = (tf.equal(min_index,1), lambda: f(1))
  Case_2 = (tf.equal(min_index,2), lambda: f(2))
  Case_3 = (tf.equal(min_index,3), lambda: f(3))
  
  
  Case_List = [Case_0, Case_1, Case_2, Case_3]
  
  [optimizer, update, cost] = tf.case(Case_List, nothing)
  </code></pre>
  
  <p>In the case, that no condition is fulfilled, nothing should be done. In this scenario, one of the four cases will be realized, so it's no practical problem here yet, but I want to modify the code, and then it will be important, that the training sample will be skipped in the default case. The problem is, that the return type(s) of f_default and all other return types have to be the same, because sess.run([optimizer, update, cost]) is expecting a certain type. How can I do this, that really nothing happens in the default case? I have already tried to use tf.no_op() but that's not working... </p>
  
  <p>Thanks, </p>
  
  <p>Meridius</p>