栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Keras + Tensorflow和Python中的多处理

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Keras + Tensorflow和Python中的多处理

根据我的经验,问题在于加载

Keras
到一个进程中,然后在将
keras
其加载到您的主环境中时生成一个新进程。但是对于某些应用程序(例如训练
Keras
模型的混合),最好将所有这些都集中在一个过程中。所以我建议采取以下方法(有点麻烦-但为我工作):

  1. 不要将KERAS加载到您的主要环境中 。如果要加载Keras / Theano / TensorFlow,请仅在功能环境中加载。例如 要这样做:
        import keras     def training_function(...):        ...

但请执行以下操作:

        def training_function(...):        import keras        ...
  1. 在单独的过程中运行与每个模型相关的工作: 我通常会创建正在完成工作的工作人员(例如培训,调优,评分),然后在单独的过程中运行他们。这样做的 好处是, 在您的进程完成后,该进程使用的全部内存都被完全 释放 。这可以帮助您解决许多内存问题,这些问题通常是在使用多处理甚至在一个进程中运行多个模型时遇到的。所以这看起来像这样:
        def _training_worker(train_params):        import keras        model = obtain_model(train_params)        model.fit(train_params)        send_message_to_main_process(...)    def train_new_model(train_params):        training_process = multiprocessing.Process(target=_training_worker, args = train_params)        training_process.start()        get_message_from_training_process(...)        training_process.join()

不同的方法只是为不同的模型动作准备不同的脚本。但这可能会导致内存错误,尤其是在模型消耗内存的情况下。 请注意
,由于这个原因,最好使您的执行严格按顺序执行。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637558.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号