我正在通过创建一个灰度图像来使用CNN模型(使用keras)进行实验。 我不得不尝试使用512*512的图像大小,但我得到了一个内存溢出错误。 我不能再减小图像大小了,如果我看一下gpustat,它是32GB,但我不知道为什么会出现内存错误。我不知道在哪里以及如何找到和增加可分配的gpu内存
以下是我迄今为止所做的尝试
1.减少一层神经元的数量 2.使用较小的批量(当前批量5) 3.增加要使用的最大池大小 4.增加步幅 5.辍学者 6.config=tf.ConfigProto() config.gpu\u options.allow\u growth=True 7.config=tf.ConfigProto() config.gpu\u options.per\u进程\u gpu\u内存\u分数 8.strategy=tf.distribute.MirroredStrategy() 9镜像_策略=tf.distribute.MirroredStrategy(设备=[“/GPU:0”,“/XLA_GPU:1”])
我已经尝试了以上所有方法,但都不起作用。如果您知道如何修复,请回答。 无法减小图像大小。(这就是我实验的目的) 上面说GPU内存是32GB,但是如果你告诉我为什么在不是32GB的时候会发生错误,我会非常感激
简短的回答。停止使用
Flatten
,并将其更改为GlobalAveragePooling2D
或GlobalMaxPooling2D
答案很长。您尝试的是使用
64*64*800
作为完全连接层的输入大小,这太大了。现代CNN模型都不再使用Flatten
,而是用GlobalAveragePooling2D
代替,因为它还保留了CNN的可变大小功能相关问题 更多 >
编程相关推荐