当我使用keras + tensorflow-gpu进行训练时,我将batch_size设置为128,这是gpu可以接受的最大大小,否则,会出现OOM问题。我的问题是,当batch_size为128时,图片大小为128 * 224 * 224 * 3 * 4(img大小为224 * 224,在RGB通道中),总计约为10M字节,与GPU的内存。有什么解释吗?
答案 0 :(得分:1)
您忘记了3
还要需要GPU内存的其他东西。
您的模型权重。
计算梯度时的临时变量。
这两个占用了大量内存。
这就是为什么即使您的批次消耗了10M
。
答案 1 :(得分:1)
图像为uint,张量为float64,其大小增加了八倍。前向路径,渐变和其他张量会占用大量内存。
您可以根据给定here
计算模型所需的内存