最近在训练CNN的时候,会出现这个。
tensorflow能够成功导入,但是在导入keras模型(例如在使用vgg19时),出现了。
声明一下,我这里出现问题的时使用的是Tensorflow2.1gpu版本的,1.x的我不太确定能不能解决。可以一试。
网上查阅的资料解释为显存不够,或者cudnn版本不对,但是我在之前跑一些简单模型时,都未曾出现过这个问题,因此显存不够导致报错的可能性更大。不过解决办法我也找到了,有两种(其实本质还是差不多的):
修改时,直接将下面的代码放到导入的库后面,比如这样:
第一种:
devices = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(devices[0], True)
第二种 (这一种稍微改一下,应该可以用于1.x版本类似问题的解决)
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)