中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決基于Keras循環訓練模型跑數據時內存泄漏問題

發布時間:2020-07-17 10:12:16 來源:億速云 閱讀:855 作者:小豬 欄目:開發技術

這篇文章主要為大家展示了如何解決基于Keras循環訓練模型跑數據時內存泄漏問題,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

在使用完模型之后,添加這兩行代碼即可清空之前model占用的內存:

import tensorflow as tf
from keras import backend as K
 
K.clear_session()
tf.reset_default_graph()

補充知識:keras 多個模型測試階段速度越來越慢問題的解決方法

問題描述

在實際應用或比賽中,經常會用到交叉驗證(10倍或5倍)來提高泛化能力,這樣在預測時需要加載多個模型。常用的方法為

mods = []
  from keras.utils.generic_utils import CustomObjectScope
  with CustomObjectScope({}):
    for model_file in tqdm.tqdm(model_files):
      mod = keras.models.load_model(model_file)
      mods.append(mod)
  return mods

使用這種方式時會發現,剛開始模型加載速度很快,但隨著加載的模型數量增多,加載速度越來越慢,甚至延長了3倍以上。那么為什么會出現這種現象呢?

原因

由于tensorflow的圖是靜態圖,但是如果直接加在不同的圖(即不同的模型),應該都會存在內存中,原有的圖并不會釋放,因此造成了測試速度越來越慢。

解決方案

知道了原因,解決方案也就有了:每加載一個模型就對所有測試數據進行評估,同時在每次加載模型前,對當前session進行重置。keras的tf后臺提供了clear_session方法來清除session

  import keras.backend.tensorflow_backend as KTF
  KTF.clear_session()
  session = tf.Session(config=config)
  KTF.set_session(session)

  with CustomObjectScope({}):
    model = keras.models.load_model(model_file)
  return model

以上就是關于如何解決基于Keras循環訓練模型跑數據時內存泄漏問題的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

敖汉旗| 腾冲县| 灵台县| 东乡县| 水富县| 大英县| 九寨沟县| 绍兴县| 深州市| 高雄市| 白朗县| 滕州市| 黔东| 双峰县| 安新县| 甘德县| 广德县| 沾益县| 肥乡县| 高密市| 黑河市| 胶州市| 微山县| 绵竹市| 水富县| 罗平县| 永仁县| 凤冈县| 吴忠市| 广州市| 宝应县| 卢湾区| 涿州市| 南郑县| 安岳县| 巴东县| 静乐县| 嘉黎县| 遂昌县| 广河县| 周宁县|