Python Tensorflow中的样式转换:分配tensor时的OOM

Python Tensorflow中的样式转换:分配tensor时的OOM,python,tensorflow,conv-neural-network,Python,Tensorflow,Conv Neural Network,我一直在尝试在Windows(GPU版本)上运行此Tensorflow样式的传输实现,但遇到以下错误: ResourceExhaustedError(回溯见上文):分配时的OOM 形状张量[64239400] [[Node:gradients/MatMul\u grad/MatMul=MatMul[T=DT\u FLOAT,transpose\u a=false,transpose\u b=true, _device=“/job:localhost/replica:0/task:0/gpu:0”

我一直在尝试在Windows(GPU版本)上运行此Tensorflow样式的传输实现,但遇到以下错误:

ResourceExhaustedError(回溯见上文):分配时的OOM 形状张量[64239400] [[Node:gradients/MatMul\u grad/MatMul=MatMul[T=DT\u FLOAT,transpose\u a=false,transpose\u b=true, _device=“/job:localhost/replica:0/task:0/gpu:0”](渐变/truediv_2_渐变/tuple/control_依赖项, 重塑]]


我是Tensorflow和Python的完全初学者,所以我真的不知道如何解决这个问题

这是内存不足错误。您没有足够的GPU内存来运行此映像的深层网络

您有两种解决方案:

  • 如果您不关心速度,请使用CPU版本,因为您的CPU内存(RAM)可能比GPU内存多。将CUDA_VISIBLE_DEVICES设置为禁用GPU:
    CUDA_VISIBLE_DEVICES=python neural_style.py--style--output
  • 处理较小的图像。馈送更小尺寸的图像确实可以减少内存使用。因此,在将图像输入脚本之前,尝试对图像进行下采样;您可以尝试多种大小,以查看您可以放入GPU内存的最大大小

  • 谢谢输入更小的图像有帮助。我只是希望有一个更好的解决方案,比如我可以改变设置,这样网络使用更少的内存。没有神奇的设置可以减少内存使用。如果您愿意投入大量精力(例如,如果您正在部署一个产品),请参阅quantization:tensorflow.org/performance/quantization