TensorFlow: trainable_variables() is empty
There are functions in the Estimator class that handle this, namely: get_variable_names and get_variable_value. 

I guess they want to avoid polluting the global scope. Note that you can pass a name parameter to your layers on creation to disambiguate them.