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