Я использую LinearRegressor из tf.estimator и хочу изменить свое затухание скорости обучения (первоначально экспоненциальное затухание) на затухание, использующее потерю. Но для этого мне нужно передать потерю оценки некоторым заполнителям тензора затухания скорости обучения, и на этом этапе мне нужен tf.session.
Я пытался tf.get_default_session()
получить сеанс, который выполняется оценщиком, но этот сеанс имеет другой график, используемый оценщиком.
def my_decay(learning_rate, global_step, decay_step, loss, decay_rate):
# If loss is not reduced, than decay with decay_rate.
loss = tf.placeholder(tf.float32)
estimator = tf.estimator.LinearRegressor(
feature_columns=feature_columns,
optimizer==lambda: tf.train.FtrlOptimizer(
learning_rate=my_decay(learning_rate=0.1,
global_step=tf.get_global_step(), decay_step=10000,
loss=loss, decay_rate=0.96)),
config=sess_config
)
for _ in range(n_epoches):
metrics = tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec)
session.run(loss.assign(metrics['loss']))
С приведенным выше кодом мне нужно получить session
от оценщика.
Есть ли способ получить это?
Заранее спасибо!