基于seq2seq模型中的损失函数(" sequence_loss_by_example" - context here here.py)我试图重视实值估计器的成本。我希望模型猜测可能在规模上变化很大的实际值。
现在,我的问题是:你能否反馈两种交叉熵的组合是否与我实施它们的方式有关。我可以添加它们然后添加它们吗?
for logit, target, weight in zip(logits, targets, weights):
real_target = target[:, 0:11]
real_logit = logit[:, 0:11]
anteil_target = target[:, 11:]
anteil_logit = logit[:, 11:]
total_size += 1.1 * weight
crossent = weight * nn_ops.softmax_cross_entropy_with_logits(real_logit, real_target, name="main_bits_loss")
crossent_anteil = 0.1 * weight * nn_ops.softmax_cross_entropy_with_logits(anteil_logit, anteil_target, name="anteil_bits_loss")
log_perp_list.append(crossent)
log_perp_list.append(crossent_anteil)
log_perps = math_ops.add_n(log_perp_list) / total_size
return log_perps
而且:要调试,我该如何给这个张量命名?
real_target = target[:, 0:11]
类似的东西:
real_target = target[:, 0:11]
real_target.name('name_goes_here')
一堆 菲利普
答案 0 :(得分:1)
[:,0:11]表示法在内部调用tf.slice(),它确实采用了name参数。在你的情况下,你应该能够做这样的事情:
real_target = tf.slice(target, [0, 0], [-1, 11], name="real_target")