我感兴趣的是使用tensorflow slim库(tf.contrib.slim)在训练期间定期评估(n)(整个)测试集上的模型性能。文档很清楚,slim.evaluation.evaluation_loop是要走的路,它看起来很有希望。问题是我没有备用的第二个gpu,这个模型参数占用了整个gpu的内存,我想做并发评估。
例如,如果我有2个GPU,我可以运行一个python脚本,在第一个gpu上以“slim.learning.train()”结尾,另一个以“slim.evaluation.evaluation_loop()”结束第二个gpu。
是否有一种方法可以管理两个任务的1个gpu资源? tf.train.Supervisor浮现在脑海中,但我老实说不知道。
答案 0 :(得分: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())