86973087744的分配超过了系统内存的10%

时间:2019-10-02 20:14:06

标签: python tensorflow keras

enter image description here如果图像从64x64到1024x1024,我正在使用SRGAN进行超分辨率。网络很深(有16个残留块)。如果我将代码用于从64x64到256x256的超分辨率,那么一切都很好。但是对于16倍的升采样,我开始遇到内存错误。我正在使用Nvidia GeForce GTC 1080Ti。在系统监视器上,我看到内存和交换达到最大值,一段时间后代码崩溃。我还安装了Tensorflow GPU版本。为什么代码使用CPU内存而不是GPU内存?

1 个答案:

答案 0 :(得分:0)

您可以在开始会话之前尝试:

os.environ["CUDA_VISIBLE_DEVICES"]="0"
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

由于它限制了GPU内存的使用,我认为您不会出现内存崩溃的情况。但是,请记住,如果有限使用GPU内存,则过程将更长。此外,os.environ可以确保您位于CUDA中。但是="0"部分可以在系统之间更改。您也可以尝试=""