Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在TensorFlow中获取估计器的默认会话?_Python_Tensorflow - Fatal编程技术网

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。我对我的模型进行了多个时代的训练,跟踪并保存了精度最高的模型。我不会保存每个检查点文件,因此提供最高精度的模型可能没有检查点文件。