【发布时间】:2019-08-24 01:00:35
【问题描述】:
我在 for 循环中拟合模型,但我收到一个错误,即我的 GPU 内存已满。我在 Anaconda Spyder IDE 中使用 Keras。我的 GPU 是华硕 GTX 1060 6gb。
我还使用过以下代码:K.clear_session()、gc.collect()、tf.reset_default_graph()、del custom_model,但它们都不起作用。
GPU 属性显示 98% 的内存已满:
除了numba.cuda.close() 之外没有任何东西刷新 GPU 内存,但不允许我再次使用我的 GPU。清除它的唯一方法是重新启动内核并重新运行我的代码。
我正在寻找任何脚本代码来添加我的代码,允许我在 for 循环中使用我的代码并在每个循环中清除 GPU。
【问题讨论】:
-
您应该在问题中包含重现问题的代码
-
您是否在循环中创建模型?那为什么?
-
@SimonCaby 因为我正在计算噪声数据的准确性,我需要平均 50 次训练和测试结果。
-
@MatiasValdenegro 我的部分代码:image_input = Input(shape=(224, 224, 3)) base_model = Xception(input_tensor=image_input, include_top=False,weights='imagenet') custom_Xception_model.compile (loss='categorical_crossentropy',optimizer='adadelta',metrics=['accuracy']) hist = base_model.fit(X,Y,epochs=2) 用 keras 进行简单的训练。我只需要在循环中使用它,并在每个循环的最后一个清除 GPU 内存。
-
好的。您不应该在循环中构建模型,而只是加载和训练权重。你不应该清除模型(和内存)。
标签: tensorflow keras out-of-memory spyder