failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED 报警告问题的解决
最近在跑keras的时候,发现配置好的cuda和cudnn,在tensorflow-gpu 2.3.0的情况下,老是会报出一个警告failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED 虽然程序还是能正常运行,但是满满的红色对强迫症太不友好了
上网上找了很多解决方案,他们都说是什么动态显存没设置,我也去看了一下gpu的cuda占用,发现的确gpu的cuda占用拉满了。起初我以为是我电脑的显存太小了,运行不够,后来偶然间在解决另一个bug的时候,发现那个bug 的解决方案也能来处理这个动态显存分配的问题。太强了。另一个bug 的问题就是Failed to get convolution algorithm. This is probably because cuDNN failed to initialize的错误。
很多情况下都是gpu显存没调整好的原因,需要在程序的开头加入以下代码:
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
之前搜过的网上别人写的,他们导入的什么 from tensorflow_keras_backend import xxx之类的在我这边一直显示找不到这个模块,可能tensorflow 2.x版本跟之前的有点不一样把,加了这段代码之后,之前的问题解决了,警告不出现了,显存占用也低了。大功告成!