【发布时间】:2019-04-19 07:02:11
【问题描述】:
张量流如何单独优化批次的元素损失而不是优化批次损失?
在优化每个batch的loss时,常用的方法是求和或取该batch的所有element loss的平均值作为batch loss,然后优化这个batch loss。就我而言,我想单独优化每个元素的损失,而不是将它们作为批量损失一起减少。
例如,在下面的代码中。
losses = tf.nn.nce_loss(<my batch inputs here>)
loss = tf.reduce_mean(losses)
optim = tf.nn.GradientDesentOptimizor(learning_rate = 0.01).minimize(loss)
如何跳过loss = tf.reduce_mean(losses) 并直接最小化张量losses? (这样mini-batch实际上就缩小到了batch size为1的情况。)
我已经将损失直接最小化为:
optim = tf.nn.GradientDesentOptimizor(learning_rate = 0.01).minimize(losses) # instead of loss
我不确定最小化将如何工作。当我使用它在会话中运行时,损失往往会探索到 nan。
那么在tensorflow中是否可以实现上述目的呢?
【问题讨论】:
标签: tensorflow optimization loss