【问题标题】:How does keras clear session() , del models and gc.collect() work?keras clear session() 、 del models 和 gc.collect() 是如何工作的?
【发布时间】:2021-12-02 23:40:37
【问题描述】:

#Lets say we first load certain models which we use later for calculating errors: 

pre_trained_models = []

for i in range(1,6):

  pre_trained_models.append(keras.models.load_model("model"+str(i))
  
#Now we create another loop where we create a different models for different hyperparameters:

from keras import backend as K
import gc

for i in range(5):
   model = Sequential(....)

   K.clear_session()
   del model
   gc.collect()

此清除会话是否还会删除先前加载的 pre_trained_models 或仅删除“模型”?

还有这些 clear session、del model 和 gc.collect() 一般是如何工作的?

【问题讨论】:

    标签: tensorflow keras


    【解决方案1】:

    keras.clear_session:将清除当前加载在内存中的所有模型,检查here
    del model 删除对给定对象(本例中为模型)的引用。
    gc.collect() 调用垃圾收集器从内存中移除未被引用的对象。

    根据keras.clear_session 的描述,您可能不需要使用其他两个,因为它已经从内存中删除了模型,但我似乎有多个代码同时使用了这两个,可能只是为了确定。

    这里都是tensorflow 1.x,建议迁移到tensorflow 2.x,现在更依赖eager execution,如果你想删除模型,就像deleting any object

    del model
    gc.collect()
    

    【讨论】:

      猜你喜欢
      • 2019-04-10
      • 1970-01-01
      • 2022-11-15
      • 2014-03-12
      • 1970-01-01
      • 2014-06-02
      • 2017-06-19
      • 2018-05-14
      • 2017-10-25
      相关资源
      最近更新 更多