我是否需要修改我keras代码在GPU高效运行?

问题描述 投票:1回答:1

我有cuda8.0.61,tensorflow_gpu版本和keras。我训练对224 * 224的图像数据20层的层的keras模型当我在终端运行NVIDIA -smi,我发现,存储器被习惯并计算util的是%以下。当我尝试拟合模型机器变得很慢。

我知道,为了使用GPU,我应该使用下面的代码的设备之间进行切换:

with K.tf.device('/gpu:0'):
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)

我需要CPU和GPU之间切换,通过使用块,诸如与K.tf.device(“/ GPU:0”):增加我的速度,并用K.tf.device(“/ CPU:0”):?

我使用numpy的阵列来存储影像。我是否需要使用tf.array或tf.convert_to_tensor?这会不会是任何帮助吗?

tensorflow keras gpu cpu
1个回答
2
投票

如果tensorflow GPU被安装在系统上,那么你的系统会自动使用GPU进行计算,但是出现问题是因为GPU并不总是有它需要提供给它进行计算,即瓶颈发生在你的输入管道中的数据,只是tf.arraytf.convert_to_tensor不可能帮助,因为他们只在内存控制数据一次,你需要的是generators(考虑到这是蟒蛇),发电机是返回一个对象(迭代器),我们可以遍历一个函数(一个值在时间)。

发电机和它的迭代器在tensorflow已经实施的tf.data API https://www.tensorflow.org/guide/datasets您可以直接使用它们,并相应地修改您的管道。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.