
我使用SRGAN的超分辨率if图像从64x64到1024x1024图像。网络非常深(它有16个残留块)。如果我使用从64x64到256x256的超分辨率代码,一切都很好。但是对于16倍的上采样,我开始得到内存错误。我使用的是Nvidia GeForce GTC 1080Ti。在系统监视器上,我看到内存和交换空间达到最大值,一段时间后代码崩溃。我还安装了Tensorflow GPU版本。为什么代码使用CPU内存而不是GPU内存?
发布于 2019-10-03 04:24:08
您可以在启动会话之前尝试:
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"部分可以在不同的系统之间进行更改。您也可以尝试使用=""。
https://stackoverflow.com/questions/58208755
复制相似问题