<p>Adam keeps per parameter <a href="https://arxiv.org/pdf/1412.6980.pdf" rel="nofollow noreferrer">statistics for its update</a>, see Alg. 1.
In TensorFlow these are <a href="https://github.com/tensorflow/tensorflow/blob/6da31773d5d6aecb5672da6024bd03fc803ee599/tensorflow/contrib/optimizer_v2/optimizer_v2.py#L926" rel="nofollow noreferrer">generated here</a> and <a href="https://github.com/tensorflow/tensorflow/blob/6da31773d5d6aecb5672da6024bd03fc803ee599/tensorflow/contrib/optimizer_v2/adam.py#L115-L118" rel="nofollow noreferrer">there</a>.</p>

<p>For inference, you just need to rely on <code>.../kernel:0</code>. </p>
What is the difference between these two tensorflow variables (or tensor): kernel:0 and kernel/Adam:0
<p>I'm working on Tensorflow recently.</p>

<p>I have a trained model, and need to check the variables in it.
So, I've restored the graph from the meta file, and obtained the variables by: </p>

<pre><code>gvars = tf.global_variables()
</code></pre>

<p>I'm interested in the kernels of each convolution layers, and they got names like <code>'.../kernel:0'</code>. However, I found a similar tensor named <code>'.../kernel/Adam:0'</code> but having totally different values!! What I only understand is that the <code>.../Adam:0'</code> things are related to the training (optimization) processes, but, not sure...</p>

<p>So.. what is the difference between two, and which one is actually used in evaluating, testing, deploying, etc?</p>