InvalidArgumentError (see above for traceback): Default MaxPoolingOp only supports NHWC on device ty

对于这个问题,有不同的解决方式;
InvalidArgumentError (see above for traceback): Default MaxPoolingOp only supports NHWC on device type CPU
[[Node: ssd_300_vgg/pool1/MaxPool = MaxPoolT=DT_FLOAT, data_format=“NCHW”, ksize=[1, 1, 2, 2], padding=“SAME”, strides=[1, 1, 2, 2], _device="/job:localhost/replica:0/task:0/device:CPU:0"]]

  • 解决方法1:将代码中的 ‘NCHW’ as ‘NHWC’
    因为对于NCHW是支持GPU的,而NHWC是支持CPU的,所以如果你的电脑没有相应的GPU硬件或者训练的时候不需要用到GPU,那么你就可以将NCHW 改成 NHWC然后把有关GPU训练的相关设置都关闭或者取消

  • 解决方法2:如果电脑是有GPU而同时你也想用GPU对自己的模型进行训练,那么就将这个地方设置成NCHW,但是即使这样也不一定就能保证问题解决,因为导致这个错误的一个很大的原因在于:那绝大多数是因为你的GPU相关设置没有匹配好。如果你有GPU硬件而且你将这个选项设置成NCHW但是依然报这个错误,,举个例子来说:开始的时候我用了tensorflow-gpu=1.10.0,cudnn=7.6.5,cudatoolkit=10.2他还是报错,同样的错误,但是当我将这些东西全部卸载,换成了tensorflow-gpu=1.11.0,cudnn=7.6.5,cudatoolkit=9.2然后这个问题就解决了。

综上所述,如果你遇到了这个问题,不要简单地将data_format="NCHW"和 data_format="NHWC"之间简单的切换,要注重环境配置方面的问题。

希望你也能够不受环境的困扰。

你可能感兴趣的:(论文阅读与代码复现)