我正在尝试创建灰度图像以使用 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时会出现错误,我将非常感激。
1 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
简短的回答。停止使用Flatten
并将其更改为GlobalAveragePooling2D
或GlobalMaxPooling2D
。
长答案。您尝试使用的64*64*800
完全连接层的输入大小太大了。现代CNN模型都不再使用Flatten
并取而代之,GlobalAveragePooling2D
因为它还保留了CNN的可变尺寸能力。
添加回答
举报
0/150
提交
取消