当前位置:  开发笔记 > 编程语言 > 正文

TensorFlow中的缓存计算

如何解决《TensorFlow中的缓存计算》经验,为你挑选了1个好方法。

是否有规范的方法来重用TensorFlow中先前提供的占位符的计算?我的具体用例:

同时提供许多输入(使用一个占位符),所有这些输入都通过网络馈送以获得更小的表示

基于这些较小表示的各种组合来定义损失

一次训练一批,每批次使用输入的一些子集,而不重新计算较小的表示

这是代码中的目标,但由于一次又一次地执行相同的计算,因此存在缺陷:

X_in = some_fixed_data
combinations_in = large_set_of_combination_indices
for combination_batch_in in batches(combinations_in, batch_size=128):
    session.run(train_op, feed_dict={X: X_in, combinations: combination_batch_in})

谢谢.



1> Ian Goodfell..:

在sess.Run()调用之间共享计算值的规范方法是使用a Variable.在这种情况下,您可以设置图形,以便在添加占位符时,它们会计算保存到变量中的表示的新值.图的单独部分读取那些变量以计算损失.如果您需要通过计算表示的图形部分计算渐变,则此方法无效.计算这些梯度将需要重新计算编码器中的每个Op.


因此,您认为没有办法以“正确”的方式做到这一点,那就是进行前向传递,缓存这些结果并使用那些缓存的结果计算梯度?
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有