1

我有兴趣使用 tensorflow slim 库 (tf.contrib.slim) 在训练期间定期评估 (n) (整个) 测试集上的模型性能。文档很清楚 slim.evaluation.evaluation_loop 是要走的路,而且看起来很有希望。问题是我没有第二个 gpu 可用,这个模型参数占用了整个 gpu 的内存,我想做并发评估。

例如,如果我有 2 个 GPU,我可以在第一个 gpu 上运行一个以“slim.learning.train()”终止的 Python 脚本,在第二个 gpu 上运行另一个以“slim.evaluation.evaluation_loop()”终止的 Python 脚本.

有没有一种方法可以为这两个任务管理 1 个 gpu 的资源?tf.train.Supervisor 浮现在脑海中,但我真的不知道。

4

1 回答 1

1

您可以使用以下代码对 GPU 使用情况进行分区。

您可以分别设置用于训练和评估的 GPU 比例。下面的代码意味着进程被分配了 30% 的内存。 gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.3000) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) sess.run(tf.app.run())

于 2018-03-30T21:14:37.213 回答