栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

培训因ResourceExausted错误而中断

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

培训因ResourceExausted错误而中断

这些天,我已经做了很多调整以解决此问题。

最后,我还没有解决问题中描述的内存大小之谜。我想在计算梯度时,tensoflow会积累大量用于计算梯度的额外内存。我需要检查这个时候看起来很麻烦的张量流的来源。您可以通过以下命令从终端检查模型使用了多少内存,

nvidia-smi

从此命令判断,您可以猜测可以使用多少额外的内存。

但是解决这类问题的方法在于减小批量大小,

就我而言,将批处理的大小减少到3个作品。这可能因模型而异。

但是,如果您使用的模型中的嵌入矩阵大得多而无法将其加载到内存中,该怎么办?

解决方案是编写一些痛苦的代码。

您必须查找嵌入矩阵,然后将嵌入加载到模型。简而言之,对于每一批,您都必须将查找矩阵提供给模型(通过中的feed_dict参数提供它们

sess.run()
)。

接下来,您将面临一个新问题,

您不能

trainable
以这种方式进行嵌入。解决方案是使用嵌入到中,
placeholder
然后将它们分配给
Variable
(例如
A
)。在每批训练之后,学习算法都会更新变量
A
。然后通过张量流计算
A
向量的输出,并将它们分配给模型外部的嵌入矩阵。(我说这个过程很痛苦)

现在,您的下一个问题应该是,如果因为嵌入查找太大而无法将嵌入查找提供给模型,该怎么办。这是您无法避免的基本问题。这就是为什么NVIDIA GTX
1080、1080ti和NVIDA TITAN Xp具有如此高的价格差异的原因,尽管NVIDIA 1080ti和1080具有更高的执行频率。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639760.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号