title: Access elements of a Tensor
body: <p>I have the following TensorFlow tensors. </p>
  
  <pre><code>tensor1 = tf.constant(np.random.randint(0,255, (2,512,512,1)), dtype='int32') #All elements in range [0,255]
  tensor2 = tf.constant(np.random.randint(0,255, (2,512,512,1)), dtype='int32') #All elements in range [0,255]
  
  tensor3 = tf.keras.backend.flatten(tensor1)
  tensor4 = tf.keras.backend.flatten(tensor2)
  
  tensor5 = tf.constant(np.random.randint(0,255, (255,255)), dtype='int32') #All elements in range [0,255]
  
  </code></pre>
  
  <p>I wish to use the values stored in tensor 3 and tensor 4 to make a tuple and query the element at position given by the tuple in tensor 5. For example, let's say 0th element in tensor 3, that is tensor3[0]=5 and tensor4[0]=99.
  So the tuple becomes (5,99). I wish to look up the value of element (5,99) in tensor 5. I wish to do it for all elements in Tensor3 and Tensor4 in a batch processing manner. That is I do not want to loop over all values in the range of (len(Tensor3)). I did the following to achieve this. </p>
  
  <pre><code>tensor6 = tensor5[tensor3[0],tensor4[0]]
  </code></pre>
  
  <p>But tensor6 has the shape (255,255) where as I was hoping to get a tensor of shape (len(tensor3),len(tensor3)). I wanted to evaluate tensor5 at all possible locations in len(tensor3). That is at <code>(0,0),...(1000,1000),....(2000,2000),...</code>. I am using TensorFlow version 1.12.0. How can I achieve this?</p>