title: Deepcopy in Tensorflow
body: <p>Is there any deepcopy in tensorflow? Consider the following operation:</p>
  
  <pre><code>tt = tf.get_variable('t',shape=[2,2])
  tt1= tf.identity(tt[0].assign([1,1]))
  tt2 = tf.identity(tt[1].assign([2,2]))
  </code></pre>
  
  <p>I want tt1 to only edit the first row of tt, and tt2 only edits the second row. This is what I get now:</p>
  
  <pre><code>with tf.Session() as sess:
      sess.run(tf.global_variables_initializer())
      print(sess.run(tt1))
      print(sess.run(tt2))
  </code></pre>
  
  <p>which outputs:</p>
  
  <pre><code> [[ 1.          1.        ]
    [-1.15554953 -0.78545022]]
  
   [[ 1.  1.]
    [ 2.  2.]].
  </code></pre>
  
  <p>Instead, I want something like:</p>
  
  <pre><code> [[ 1.          1.        ]
    [-1.15554953 -0.78545022]]
  
   [[ -0.31531231 1.6651651]
    [ 2.  2.]].
  </code></pre>
  
  <p>As you see, the second variable is also affected by the first assign. Is there a way to have independent copies, without copying the references to tensors?</p>