错误情况
错误原因
- 1.cuDNN, CUDA, tensorflow, GPU驱动版本不一致。在不同虚拟环境中配置不同版本的tf以及CUDA并根据代码所需环境切换。
- 2.默认情况下,TensorFlow 会映射进程可见的所有 GPU的几乎全部内存。这是为了减少内存碎片,更有效地利用设备上相对宝贵的 GPU 内存资源。为了将 TensorFlow 限制为使用一组特定的 GPU,我们使用
tf.config.experimental.set_visible_devices方法。
解决办法
也就是加入以下代码即可
gpus= tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)
或者
config = tf.ConfigProto()
config.gpu_options.allow_growth = True # 不全部占满显存, 按需分配
sess = tf.Session(config=config)
然后就成功了。