https://jacobbuckman.com/2018-06-25-tensorflow-the-confusing-parts-1/
Placeholder VS Variable
The placeholder is used to feed the tensorflow computation environment with external variables. More precisely, it declares the variables that tensor flow env should receive.
tf.reset_default_graph()
a = tf.placeholder(np.float32, (2, 2))
b = tf.Variable(tf.ones((2, 2)))
c = a @ b
s = tf.InteractiveSession()
s.run(tf.global_variables_initializer())
s.run(c, feed_dict={a: np.ones((2, 2))})
s.close()