Python 3.x 使用GPU分配形状为[]的张量时出现错误

Python 3.x 使用GPU分配形状为[]的张量时出现错误,python-3.x,tensorflow,deep-learning,tensorflow-gpu,Python 3.x,Tensorflow,Deep Learning,Tensorflow Gpu,我正在尝试在tensorflow上培训VGG风格的CNN,我的输入大小为: 2个批量大小*1080高*1920宽*5通道我的网络结构是: Conv 3*3*64 Conv 3*3*128 最大池3*3步3 Conv 3*3*256 以及具有1*1*256*2输出的COnv CPU版本上运行正常,但使用GPU时出错: ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[2,1

我正在尝试在tensorflow上培训VGG风格的CNN,我的输入大小为: 2个批量大小*1080高*1920宽*5通道我的网络结构是:

  • Conv 3*3*64
  • Conv 3*3*128
  • 最大池3*3步3
  • Conv 3*3*256
  • 以及具有1*1*256*2输出的COnv
  • CPU版本上运行正常,但使用GPU时出错:

    ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[2,128,1080,1920]
     [[Node: Feature_Map/Conv2 = Conv2D[T=DT_FLOAT, data_format="NHWC", padding="SAME", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/gpu:0"](Feature_Map/Act1, Feature_Map/Variable_2/read)]]
    
    看起来它卡在第二层了。我的GPU在Spyder(windows)上是GTX1060(6G)。我添加了以下命令以允许GPU内存增长:

    config = tf.ConfigProto()
    config.gpu_options.allow_growth = True
    session = tf.Session(config=config, ...)
    

    有人能帮我吗?非常感谢

    您正在分配2GB张量,并且GPU内存不足。在CPU上运行时,它使用主内存,不会耗尽内存。但我的GPU上有6GB的内存。为什么2G内存不足?当可用内存不足2GB时,它试图分配2GB张量。我猜空间被其他层的激活占用了。我通过以下步骤解决了这个问题:1。将图像大小调整为2。使用tf.recorder减少内存消耗,感谢您的帮助!@雅罗斯拉夫