Python 如何在TensorFlow中获取估计器的默认会话?
我已经创建了一个估计器,并使用估计器的Python 如何在TensorFlow中获取估计器的默认会话?,python,tensorflow,Python,Tensorflow,我已经创建了一个估计器,并使用估计器的export\u SavedModel()函数将其导出到一个SavedModel文件中 出于再现性的原因,我希望能够重新创建估计器,将变量加载到SavedModel文件中,然后调用evaluate(),并获得相同的结果 我认为这样做的方法是创建SessionRunHook来进行加载,并将其传递给evaluate()中的hooks参数,如下所示: class myhook(tf.train.SessionRunHook): def begin(sel
export\u SavedModel()
函数将其导出到一个SavedModel文件中
出于再现性的原因,我希望能够重新创建估计器,将变量加载到SavedModel文件中,然后调用evaluate()
,并获得相同的结果
我认为这样做的方法是创建SessionRunHook来进行加载,并将其传递给evaluate()
中的hooks参数,如下所示:
class myhook(tf.train.SessionRunHook):
def begin(self):
tf.saved_model.loader.load(tf.get_default_session(), ['serve'], '../best_model/1516075471/')
load_best_model_hook = myhook()
res2 = da_model.evaluate(test_input_fn, hooks=[load_best_model_hook])
但这会产生以下错误:
File "/home/user7891/Code/scratch.py", line 106, in begin
tf.saved_model.loader.load(tf.get_default_session(), ['serve'], '../best_model/1516075471/')
File "/usr/local/lib/python3.4/dist-packages/tensorflow/python/saved_model/loader_impl.py", line 198, in load
with sess.graph.as_default():
AttributeError: 'NoneType' object has no attribute 'graph'
调用
begin()
时,似乎没有创建会话。我无法在创建会话后覆盖,因为此时无法修改图形。估计器中的model\u dir
参数有什么问题?model\u dir
仅适用于检查点,而不适用于导出
函数中的SavedModel。我对我的模型进行了多个时代的训练,跟踪并保存了精度最高的模型。我不会保存每个检查点文件,因此提供最高精度的模型可能没有检查点文件。