你正在使用GPU进行CNN类模型训练,突然发生了内存溢出的错误,你可以通过哪些方式来进行解决?

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你正在使用GPU进行CNN类模型训练,突然发生了内存溢出的错误,你可以通过哪些方式来进行解决?相关的知识,希望对你有一定的参考价值。

你正在使用GPU进行CNN类模型训练,突然发生了内存溢出的错误,你可以通过哪些方式来进行解决?

在GPU内存发生溢出(memory overflow)的时候、我们首先想到的肯定是增加GPU的资源,比如我们变成多GPU训练或者升级GPU的类型。

但是,现实情况下,资源往往是有限的。那么我们就得考虑别的方案来进行问题的解决:

1, 减少每个批次的大小(降低batch_size);

2, 在一层或者多层中使用较大的步幅(stride)来降低维度;

3,删除网络中的一层或者多层;

4,使用16位浮点数来代替32位浮点数进行运算;

5,在多个设备上分配CNN模型即多GPU训练;

参考:Hands-on-Machine-Learning-with-Scikit-Learn-Keras-and-TensorFlow

参考:

以上是关于你正在使用GPU进行CNN类模型训练,突然发生了内存溢出的错误,你可以通过哪些方式来进行解决?的主要内容,如果未能解决你的问题,请参考以下文章

训练TensorFlow模型的时候,GPU使用率总是出现突然的降低,波动很大,我想问问大神们原因是啥

将大图像时间发送到 GPU

在训练 CNN 进行图像分割时,我的损失怎么会突然增加?

用于训练 CNN 网络进行回归任务的正态分布数据

使用Floyd进行GPU深度学习训练

PyTorch从头搭建并训练一个神经网络模型(图像分类CNN)