Tensorflow抓取超过阈值

时间:2017-09-10 22:06:39

标签: python tensorflow

根据高于某个阈值的那些,获取相应预测值和指数的最简单方法是什么?

考虑这个问题:

sess = tf.InteractiveSession()

predictions = tf.constant([[ 0.32957435,  0.82079124,  0.54503286,  0.51966476,  0.63359714,
         0.92034972,  0.13774526,  0.45154464,  0.18284607,  0.14604568],
       [ 0.78612137,  0.98291659,  0.4841609 ,  0.63260579,  0.21568334,
         0.82978213,  0.05054879,  0.09517837,  0.28309393,  0.01788473],
       [ 0.05706763,  0.24366784,  0.04608512,  0.32987678,  0.2342416 ,
         0.91725373,  0.60084391,  0.51787591,  0.74161232,  0.30830121],
       [ 0.67310858,  0.6250236 ,  0.42477703,  0.37107778,  0.65123832,
         0.97282803,  0.59533679,  0.49564457,  0.54935825,  0.63008392],
       [ 0.70233917,  0.48129809,  0.59114349,  0.63535333,  0.71188867,
         0.4799161 ,  0.90896237,  0.86089945,  0.47896886,  0.83451629],
       [ 0.82923532,  0.8950938 ,  0.99231505,  0.05526769,  0.98151541,
         0.18153167,  0.63851702,  0.07426929,  0.91846335,  0.81246626],
       [ 0.12850153,  0.23018432,  0.29871917,  0.71228445,  0.13235569,
         0.41061044,  0.98215759,  0.90024149,  0.53385031,  0.92247963],
       [ 0.87011361,  0.44218826,  0.01772344,  0.87317121,  0.52231467,
         0.86476815,  0.25352192,  0.31709731,  0.38249743,  0.74694788],
       [ 0.15262914,  0.49544573,  0.49644637,  0.07461977,  0.13706958,
         0.18619633,  0.86163998,  0.03700352,  0.51173556,  0.40018845]])

score_idx = tf.where(predictions > 0.8)

scores = tf.SparseTensor(score_idx, tf.gather_nd(predictions, score_idx), dense_shape=tf.shape(predictions, out_type=tf.int64))
dense_scores = tf.sparse_tensor_to_dense(scores)

print(sess.run([scores, dense_scores]))

我可以很容易地获得一个稀疏张量,其所有预测都高于0.8,但最终我希望返回两个单独的1D张量:

  • 预测指数=超过阈值的指数列表(示例中为0.8)
  • 分数=相应示例的分数

所以第一行是:

[ 0.32957435,  0.82079124,  0.54503286,  0.51966476,  0.63359714,
         0.92034972,  0.13774526,  0.45154464,  0.18284607,  0.14604568]

我希望回来:

  • predict_indices = [1,5]
  • 得分= [0.821,0.920]

我缺少一个简单的解决方案吗?

0 个答案:

没有答案