当使用 shape[3075200,512] 分配张量并键入 float on 时出现 OOM:

https://img3.mukewang.com/651e7c5600013a9c06720048.jpg

https://img1.mukewang.com/651e7c610001a8ad09710525.jpg

https://img1.mukewang.com/651e7c6e0001015608060379.jpg

我正在尝试创建灰度图像以使用 CNN 模型(使用 keras)。我必须尝试使用 512*512 的图像大小,但出现内存溢出错误。我无法再减小图像大小,如果我查看 gpustat,它是 32GB,但我不知道为什么会弹出内存错误。我不知道在哪里以及如何找到和增加可分配的 GPU 内存。

以下是我迄今为止所做的尝试。

1.减少层中神经元的数量 2.使用较小的批量大小(当前批量大小为5) 3.增加要使用的Maxpooling大小 4.增加步幅大小 5.Dropout 6.config = tf.ConfigProto() config.gpu_options .allow_growth = True 7. config = tf.ConfigProto() config.gpu_options.per_process_gpu_memory_fraction 8.strategy = tf.distribute.MirroredStrategy() 9.mirrored_strategy = tf.distribute.MirroredStrategy(devices=["/GPU:0", " /XLA_GPU:1"])

我已经尝试了以上所有方法,但它不起作用。如果您知道如何解决,请回答。您无法缩小图像尺寸。(这就是我实验的目的)并且它说GPU内存是32GB,但是如果你让我知道为什么在不是32GB时会出现错误,我将非常感激。


斯蒂芬大帝
浏览 92回答 1
1回答

一只萌萌小番薯

简短的回答。停止使用Flatten并将其更改为GlobalAveragePooling2D或GlobalMaxPooling2D。长答案。您尝试使用的64*64*800完全连接层的输入大小太大了。现代CNN模型都不再使用Flatten并取而代之,GlobalAveragePooling2D因为它还保留了CNN的可变尺寸能力。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python