欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Keras 循環(huán)訓(xùn)練模型跑數(shù)據(jù)時(shí)內(nèi)存泄漏的解決方式

 更新時(shí)間:2020年06月11日 11:00:10   作者:jemmie_w  
這篇文章主要介紹了基于Keras 循環(huán)訓(xùn)練模型跑數(shù)據(jù)時(shí)內(nèi)存泄漏的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨想過來看看吧

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

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

補(bǔ)充知識(shí):keras 多個(gè)模型測(cè)試階段速度越來越慢問題的解決方法

問題描述

在實(shí)際應(yīng)用或比賽中,經(jīng)常會(huì)用到交叉驗(yàn)證(10倍或5倍)來提高泛化能力,這樣在預(yù)測(cè)時(shí)需要加載多個(gè)模型。常用的方法為

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

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

原因

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

解決方案

知道了原因,解決方案也就有了:每加載一個(gè)模型就對(duì)所有測(cè)試數(shù)據(jù)進(jìn)行評(píng)估,同時(shí)在每次加載模型前,對(duì)當(dāng)前session進(jìn)行重置。keras的tf后臺(tái)提供了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 循環(huán)訓(xùn)練模型跑數(shù)據(jù)時(shí)內(nèi)存泄漏的解決方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 獲取毫秒數(shù),計(jì)算調(diào)用時(shí)長的方法

    python 獲取毫秒數(shù),計(jì)算調(diào)用時(shí)長的方法

    今天小編就為大家分享一篇python 獲取毫秒數(shù),計(jì)算調(diào)用時(shí)長的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python報(bào)錯(cuò)TypeError: Input z must be 2D, not 3D的解決方法

    python報(bào)錯(cuò)TypeError: Input z must be 

    大家好,本篇文章主要講的是python報(bào)錯(cuò)TypeError: Input z must be 2D, not 3D的解決方法,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2021-12-12
  • Python中弱引用的神奇用法與原理詳解

    Python中弱引用的神奇用法與原理詳解

    弱引用在很多語言中都存在,最常用來解決循環(huán)引用問題,下面這篇文章主要給大家介紹了關(guān)于Python中弱引用的神奇用法與原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Python裝飾器入門學(xué)習(xí)教程(九步學(xué)習(xí))

    Python裝飾器入門學(xué)習(xí)教程(九步學(xué)習(xí))

    裝飾器(decorator)是一種高級(jí)Python語法。裝飾器可以對(duì)一個(gè)函數(shù)、方法或者類進(jìn)行加工。本文給大家介紹Python裝飾器入門學(xué)習(xí)教程(九步學(xué)習(xí)),對(duì)python裝飾器相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • Python多線程:主線程等待所有子線程結(jié)束代碼

    Python多線程:主線程等待所有子線程結(jié)束代碼

    這篇文章主要介紹了Python多線程:主線程等待所有子線程結(jié)束代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python中os庫的函數(shù)使用

    python中os庫的函數(shù)使用

    這篇文章主要介紹了python中os庫的使用,本篇文章記錄下python中os庫的一些函數(shù)使用,對(duì)python?os庫使用感興趣的朋友跟隨小編一起看看吧
    2022-10-10
  • 深入理解Python內(nèi)置函數(shù)eval的使用

    深入理解Python內(nèi)置函數(shù)eval的使用

    在Python中,eval函數(shù)是一個(gè)內(nèi)置函數(shù),用于將字符串解析并執(zhí)行為Python表達(dá)式,本文將詳細(xì)介紹eval函數(shù)的使用方法和注意事項(xiàng),需要的可以參考一下
    2023-06-06
  • Numpy 理解ndarray對(duì)象的示例代碼

    Numpy 理解ndarray對(duì)象的示例代碼

    這篇文章主要介紹了Numpy 理解ndarray對(duì)象的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python編程之基于概率論的分類方法:樸素貝葉斯

    Python編程之基于概率論的分類方法:樸素貝葉斯

    這篇文章主要介紹了Python編程之基于概率論的分類方法:樸素貝葉斯,簡單介紹了其概述,貝葉斯理論和條件概率,以及樸素貝葉斯的原理等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • python使用matplotlib繪制折線圖

    python使用matplotlib繪制折線圖

    這篇文章主要為大家詳細(xì)介紹了python使用matplotlib繪制折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評(píng)論