为了计算损失函数对几个输入的推断
我正在对张量流中的感知过程进行建模。在我感兴趣的设置中,建模代理正在玩资源游戏:它只能依靠分类器为资源提供的标签来从n资源中选择1个资源。每个资源都是一对有序的两个实数。分类器只能看到第一个真实的,但收益取决于第二个。有一个功能第一到第二。为了计算损失函数对几个输入的推断
无论如何,最好我想训练分类以下列方式:
- 在每次运行中,分类器ň资源给标签。
- 然后,代理人在某个预定的排名(比如A> B> C> D)中获得与最高标签相对应的资源的回报,并且在抽奖的情况下随机获得回报。
- 损失被认为是这样获得的收益与资源集合中的最大收益之间的归一化绝对差值。即,(Payoff_max - 回报)/ Payoff_max
对于这项工作,需要为每个资源运行推断ñ次,一次,计算损失之前。有没有办法在tensorflow中做到这一点?如果我以错误的方式解决问题,也可以自由地说出来。
回答:
我对这方面的ML方面并没有太多的知识,但是从编程的角度来看,我可以看到它有两种方式。一种是通过复制你的模型n次。所有的副本可以share the same variables。所有这些副本的输出将进入一些功能,该功能决定了最高标签的。只要这个函数是可微的,变量是共享的,并且n不是太大,它应该工作。您需要将所有n输入在一起。请注意,backprop将贯穿每个副本并更新您的权重n次。这通常不是问题,但如果是这样的话,我可以使用partial_run来解决一些奇特的技巧。
另一种方法是使用tf.while_loop。它非常聪明 - 它存储循环的每次运行中的激活,并可以通过它们进行反向传播。唯一棘手的部分应该是在推断结果之前累积推断结果。看看这个TensorArray。这个问题可以帮助:Using TensorArrays in the context of a while_loop to accumulate values
以上是 为了计算损失函数对几个输入的推断 的全部内容, 来源链接: utcz.com/qa/262008.html