看起来它会自动使用GPU,但我不知道为什么。
首先,我声明如下:
tf_config = tf.ConfigProto( allow_soft_placement=True )
tf_config.gpu_options.allow_growth = True
sess = tf.Session(config=tf_config)
keras.backend.set_session(sess)
然后我定义了以下模型:
with K.tf.device('/gpu:0'):
some keras model
显然,它将使用GPU。我检查了一下,它使用了第一个GPU(索引为0),就像我预期的那样。
但是后来,我删除了这行代码。
with K.tf.device('/gpu:0'):
我重新缩进了所有的keras模型。我运行了代码,但它似乎仍然使用第一个gpu(索引为0)。
在我的ubuntu系统上,我使用nvidia-smi命令来检查gpu内存使用情况,并在我的windows系统上查看了进程管理器。
两者都显示了gpu内存及其使用情况。
据我所知,如果我没有将gpu留给tensorflow模型,它就不会使用gpu。但是对于Keras,它似乎会自动使用gpu……这是因为我运行了代码吗?
tf_config = tf.ConfigProto( allow_soft_placement=True )
tf_config.gpu_options.allow_growth = True
sess = tf.Session(config=tf_config)
keras.backend.set_session(sess)
还是有其他我没有想到的原因吗?