Tensorflow 如何从自定义tf.估计器的模型函数内部评估张量的值

Tensorflow 如何从自定义tf.估计器的模型函数内部评估张量的值,tensorflow,Tensorflow,我正在使用tf.TPUEstimator实现一个基于BERT的NLP模型。我想实现分层训练,在这里我只需要为每个历元选择一个模型层进行训练。为了做到这一点,我想改变我的模型并得到当前的值 我知道如何在模型中使用tf.train.get\u或create\u global\u步骤计算当前\u epoch作为张量的值,但是,我需要评估该张量的值,以选择要训练的层,并实现将正确的训练返回给tf。估计器训练,与根据当前历元的值选择的单个层有关 我无法从模型内部评估这个张量电流/全局步进。我尝试了以下步骤

我正在使用tf.TPUEstimator实现一个基于BERT的NLP模型。我想实现分层训练,在这里我只需要为每个历元选择一个模型层进行训练。为了做到这一点,我想改变我的模型并得到当前的值

我知道如何在模型中使用tf.train.get\u或create\u global\u步骤计算当前\u epoch作为张量的值,但是,我需要评估该张量的值,以选择要训练的层,并实现将正确的训练返回给tf。估计器训练,与根据当前历元的值选择的单个层有关

我无法从模型内部评估这个张量电流/全局步进。我尝试了以下步骤,但在步骤my_sess.runmy_global_step.initializer时,培训挂起

有没有办法使用tf.Estimators默认会话来评估张量?如何获取默认会话/图表


最重要的是,我的代码中有什么错误,以及为什么在使用tpu和TPUEstimator时培训会挂起?

这不是OP第二个问题的直接答案,而是标题的答案

我设法用get_variable_value打印变量值,但不确定这是否是最佳方法

估计器=tf.contrib.tpu.tpu估计器 ... out=估计器。获取变量值“输出偏差” 打印输出 打印输出 我得到


这不是OP第二个问题的直接答案,而是标题的答案

我设法用get_variable_value打印变量值,但不确定这是否是最佳方法

估计器=tf.contrib.tpu.tpu估计器 ... out=估计器。获取变量值“输出偏差” 打印输出 打印输出 我得到


我也有类似的问题。你找到解决办法了吗?我也有类似的问题。你找到解决办法了吗?
global_step = tf.train.get_or_create_global_step()
graph = tf.get_default_graph()
my_sess = tf.Session(graph=graph)
current_epoch = (global_step * full_bs) // train_size

my_sess.run(my_global_step.initializer)
current_epoch = sess.run(current_epoch)

# My program hangs at the initialising step: my_sess.run(my_global_step.initializer)
<class 'numpy.ndarray'>
[-0.00107745  0.00107744]