亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何解決基于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

色达县| 南投市| 延川县| 平舆县| 黔东| 巨鹿县| 安新县| 东港市| 和顺县| 西藏| 金川县| 铅山县| 绥中县| 通江县| 安福县| 彰化县| 衡南县| 安西县| 盐城市| 楚雄市| 互助| 鹤山市| 当雄县| 镇沅| 八宿县| 汕尾市| 蒙阴县| 平顶山市| 山西省| 正镶白旗| 康平县| 逊克县| 休宁县| 吉木萨尔县| 崇左市| 喀喇沁旗| 青铜峡市| 柯坪县| 漯河市| 新疆| 会东县|