1

当我尝试向 keras 模型添加 dropout 时,它会导致 OOM 错误:tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor with shape[128,128,176,216] ...

该模型假设是产生超分辨率 x4 的自动编码器。

autoencoder = Sequential()
autoencoder.add(Conv2D(64*comlex, (3, 3), activation='relu', 
padding='same', input_shape=x_train[0].shape))
autoencoder.add(Dropout(0.25))
autoencoder.add(UpSampling2D((2, 2)))
autoencoder.add(Conv2D(64*comlex, (3, 3), activation='relu', padding='same'))
# autoencoder.add(Dropout(0.25))
autoencoder.add(UpSampling2D((2, 2)))
autoencoder.add(Conv2D(3, (3, 3), activation='sigmoid', padding='same'))
autoencoder.compile(optimizer='adam', loss='binary_crossentropy',metrics=['accuracy'])

注释中的行导致OOM。

为什么 dropout 占用这么多内存?

4

1 回答 1

-1

更新:

Tensorflow/Keras OOM(Out of memory) 错误是由于模型参数过多(例如图像大小/特征数等)具有高批量大小值,这可能导致更高的 GPU 内存消耗。有时这些也可能与先前进程的残余内存相关联。

于 2018-12-06T23:50:36.323 回答