【发布时间】:2017-04-05 16:54:23
【问题描述】:
我想为我的模型创建一个新的评估指标(平均倒数排名)。
假设我有:
-
logits形状张量(None, n_class)和 -
y_target形状张量(None, )包含从0到n_class-1的int值。 -
None将是批量大小。
我希望我的输出是一个形状为 (None, ) 的张量,具有对应的 y_target 的倒数秩。
首先,我需要对logits 中的元素进行排名,然后在索引y_target 中获取元素的排名,最后,获得它的倒数(或x+1 的倒数,取决于排名过程)。
一个简单的例子(单个观察):
如果我的y_target=1 和logits=[0.5, -2.0, 1.1, 3.5],
那么排名是logits_rank=[3, 4, 2, 1]
倒数是1.0 / logits_rank[y_target] = 0.25。
这里的挑战是跨轴应用函数,因为排名未知(在图形级别)。
我已经设法使用tf.nn.top_k(logits, k=n_class, sorted=True).indices 获得了一些结果,但仅限于session.run(sess, feed_dict)。
任何帮助将不胜感激!
【问题讨论】:
标签: python python-3.x tensorflow