首页 > 解决方案 > 尝试使用 tensorflow GPU 对多种类型的分类进行循环神经网络模型训练时,在某个循环后总是内存不足

问题描述

我是 TensorFlow 的新手,我正在使用相同的数据库为不同类型的分类训练 1 种神经网络模型,所以我使用 for 循环来训练不同的分类,如:

制作模型 -> 获取数据集 -> model.fit -> 保存权重 -> 制作模型 -> 获取数据集 -> model.fit -> .....(重复直到所有分类都被训练)

当我训练最多 2 种分类并开始训练第 3 种分类时,我总是收到错误说无法分配内存

我一直在使用

a_path = f"wav_data/denoise/{index[i]}"
p = multiprocessing.Process(target=training(a_path, load=False))
p.start()
p.join()
p.kill()
p.close()

用 training() 作为训练函数,仍然得到错误

并尝试使用

gpus = tf.config.experimental.list_physical_devices('GPU')
for gpu in gpus:
   tf.config.experimental.set_memory_growth(gpu, True)

tf.keras.backend.clear_session
gc.collect()

但仍然无法正常工作 TF 2.5

标签: pythontensorflowout-of-memory

解决方案


推荐阅读