在不同的过程中加载多个Keras模型

时间:2019-05-09 08:57:36

标签: python tensorflow keras multiprocessing python-multiprocessing

我有几个训练有素的Keras模型,权重使用keras.models.save_model存储在h5文件中。它们没有相同的体系结构。

我的目标是将所有这些加载到单独的进程中并能够进行预测。我目前尝试使用存储TensorFlow会话和图形对象的类进行此操作。然后,在加载时和预测时使用with语句,以防止干扰任何全局变量。

我可以毫无问题地创建我的(空)Keras顺序模型,但是当我调用它的load_weights函数时,该过程将冻结。

我尝试过的带有Graph和Session对象的设置:

  • 特定的图表和会话->进程冻结在load_weights
  • 仅特定图->“ TypeError:无法将feed_dict键解释为张量”
  • 仅特定会话->进程冻结load_weights

我已经了解了SO上的大多数相关答案,但是找不到解决方案,甚至遇到同样问题的人。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我仍然不知道问题的确切原因。但是,我发现我的主要过程是加载keras模型并删除该模型,从而解决了我的问题。现在,我可以有多个并行运行的模型。