title: What's the difference between `tf.random_normal` and `tf.random_normal_initializer`?
body: <p>Using the two functions seems to get the same result.</p>
  
  <pre><code>t4 = tf.get_variable('t4', initializer=tf.random_normal((2,), seed=0))
  t5 = tf.get_variable('t5', shape=(2,), initializer=tf.random_normal_initializer(seed=0))
  </code></pre>
  
  <p>And I find inside the <code>random_normal_initializer()</code> also use the <code>random_normal()</code>.</p>
  
  <p>I indistinctly realize the difference between them. The <code>random_normal</code> will return a constant tensor, but the <code>random_normal_initializer</code> will return value after init.</p>
  
  <p>I want to know more about how to use of these two functions at the right time. </p>
  
  <p>Does it use <code>random_normal</code> to init a variable will actually init twice(after init the variable)? In other words, if there performance problems between them.</p>