Does Tensorflow Use the Best Weights or Most Recent Weights When Testing in the Same Session?
It doesn't.
The model relies on a single set of weights, that are variables. You can store the best model with a saver and save the training progress as a separate checkpoint.
Other option would be to have a duplicate set of variables and copy weights once a better model is found.
Yet, the it is normally uncommon to judge if a model at epoch X is better than at epoch Y, since training accuracy might be misleading (read: overfitting). Therefore, one usually evaluates model after every epoch and saves the checkpoint if performance got better during evaluation. This way there is no need to maintain multiple copies of the same model.
This might be a dumb question, but would like someone to tell me yes or no. 
Say I have an LSTM network in Tensorflow, and am training it using the Adam Optimizer to minimize a cost function by feeding X and Y variables a set of X and Y dict's during training, and then IN THE SAME SESSION, feeding the variables new X and Y dict's for testing, does Tensorflow automatically use the best model found during it's training (i.e. using the weights that brought about the lowest cost value during training), or just the most recent one in it's run (i.e. the latest epoch)? 
Wondering if I need to set up a model.saver function to capture the best model as a new lower cost value is reached, close the current session, and re-open a new one using that saved model, OR if I can just assume that when I test in the same session as training, it will use the best model.
Thanks!