在带有TF后端的keras2.2.4中,如何在从模型中提取一个层并保留该层之后卸载模型?

2024-04-25 08:30:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个我训练过的模特,我正在努力

  1. 基本负荷模型(已完成)
  2. 从中加载层(完成)
  3. 冻结层(完成)
  4. 卸载基本模型(失败)
    • 如果我跳过4
  5. 将层添加到另一个模型(完成)
  6. 列车型号(故障)

我得到了内存不足的错误,这是正常的,因为我有两个模型在我的GPU内存。你知道吗

  • 如果我使用K.clear\u session(),我得到的错误是层和模型不属于同一个图。你知道吗
  • 如果我删除模型,我仍然会得到内存不足的错误。你知道吗
  • 如果我使用gc.收集,我还是出了内存错误。你知道吗

    baseModel = load_model("arbitaryModelName.h5")
    layerOne = baseModel.get_layer("LayerOne")
    del baseModel
    layerOne.Trainable = False
    # K.clear_session()
    # gc.collect()
    
    modelInput = Input(shape=(n, s, 1), name="modelInput")
    
    x = layerOne(modelInput)
    x = Dropout(dProba)(x)
    
    x = ArbitaryLayerAndLotsofIt(x)
    

K.clear\u会话和gc.收集()在注释中表示,因为它们在组合中使用,并且在所有组合中使用,如“两者都用”、“各用”、“无用”。你知道吗


Tags: 内存模型gpusession错误gcbasemodel故障

热门问题