我可以在会话外部或在会话创建之间使用钩子/回调吗?

时间:2018-10-18 16:04:31

标签: python tensorflow

使用train_and_evaluate(),可以执行时间表,以根据我所传递的规范训练和评估模型。我可以在EvalSpecTrainSpec上注册钩子,但有限制。

问题是我只能 有一个SessionRunHook,它可以作为回调,但总是在内部一个会话。

我的问题是我的日程安排比较复杂。在评估过程中,我也想对模型进行量化,然后进一步评估该量化模型。如前所述,这里的问题是,如果我使用类似SessionRunHook的对象,那么我总是在会话中。

所以问题是是否有办法使用train_and_evaluate()并在两者之间注册一些回调:

train_and_evaluate(..):

  # .. deep down ..

  while <condition>:
    with tf.Session() as train_sess:
      # Do training ..

    if the_callback_i_want:
      the_callback_i_want()

    with tf.Session() as eval_sess:
      # Do evaluation ..

这可能吗?

1 个答案:

答案 0 :(得分:0)

我想您可以实现自己的iris子类的## Load iris data data(iris) ## Fit a model to each species-specific subset of the data fitBySpecies <- by( data = iris, INDICES = iris$Species, FUN = function(speciesSubset) lm(Petal.Width ~ Sepal.Width, data = speciesSubset) ) 方法。

为了便于说明,我使用了iris code(请参阅this doc)。

begin

它会打印:

SessionHook