[英]OOM with a “simple” ResNet50 using Tensorflow2.0 on an Nvidia RTX2080 Ti
我很惊讶在Nvidia RTX2080Ti(具有11Gb内存!)上使用tf.keras.applications.ResNet50
实现遇到内存不足错误。
我使用的工作流程有问题吗?
tensorflow-gpu==2.0.0b1
和CUDA v10.1
output_shape
train_on_batch()
memory_growth
至True
,内存被填满时从700MB到10850Mb在几分之一秒。 import tensorflow as tf
import tensorflow.keras as ke
import numpy as np
ke.backend.clear_session()
inputs = ke.layers.Input(shape=(512,1024,3), dtype="float32")
outputs = ke.applications.ResNet50(include_top=False, weights="imagenet")(inputs)
outputs = ke.layers.Lambda(lambda x: tf.compat.v1.image.resize_bilinear(x, size=(512,1024)))(outputs)
outputs = ke.layers.Conv2D(2, 1, activation="softmax")(outputs)
model = ke.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer=ke.optimizers.RMSprop(lr=0.001), loss=ke.losses.CategoricalCrossentropy())
images = np.zeros((1,512,1024,3), dtype=np.float32)
targets = np.zeros((1,512,1024,2), dtype=np.float32)
model.train_on_batch(images, targets)
Resnet是复杂的复杂模型,输入的尺寸可能是OOM错误的原因。 尝试减小尺寸和相应的批处理大小(在内存可以容纳的范围内)并尝试。
如评论中所述,它适用于批处理大小为1,尺寸为700 * 512。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.