小编Fab*_* C.的帖子

如何防止张量流分配GPU内存的全部?

我在一个共享计算资源的环境中工作,也就是说,我们有一些服务器机器配备了几个Nvidia Titan X GPU.

对于小到中等大小的型号,12GB的Titan X通常足以让2-3人在同一GPU上同时进行训练.如果模型足够小以至于单个模型没有充分利用Titan X的所有计算单元,那么与在另一个训练过程之后运行一个训练过程相比,这实际上可以导致加速.即使在并发访问GPU确实减慢了单个培训时间的情况下,仍然可以灵活地让多个用户同时在GPU上运行.

TensorFlow的问题在于,默认情况下,它在启动时会在GPU上分配全部可用内存.即使对于一个小的2层神经网络,我也看到12 GB的Titan X已用完.

有没有办法让TensorFlow只分配4GB的GPU内存,如果有人知道这个数量对于给定的模型来说足够了?

python tensorflow nvidia-titan

252
推荐指数
12
解决办法
13万
查看次数

使用张量板时,如何总结在几个小型计算机上计算的损失?

我想使用Tensorboard可视化验证样本的损失演变.但是验证集太大而无法在一个小批量中进行计算.因此,为了计算我的验证损失,我必须在覆盖验证集的几个小批量上多次调用session.run.然后我总结每个小批量的损失(在python中)以获得完整的验证损失.

我的问题是tf.scalar_summary似乎必须附加到张量流节点.但我需要以某种方式将它"附加"到几个run.run运行的节点值的总和.

有没有办法做到这一点?也许通过直接总结包含小批量损失总和的python浮点数?但我没有在文档中看到一种方法来"总结"张量板,这是一个在计算之外的python值.文档的"操作方法"部分中的示例仅涉及可以在对session.run的单个调用中计算的损失.

tensorflow tensorboard

4
推荐指数
1
解决办法
1280
查看次数

标签 统计

tensorflow ×2

nvidia-titan ×1

python ×1

tensorboard ×1