Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 高于阈值值的Tensorflow抓取预测和指数_Python_Tensorflow - Fatal编程技术网

Python 高于阈值值的Tensorflow抓取预测和指数

Python 高于阈值值的Tensorflow抓取预测和指数,python,tensorflow,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],

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

考虑一下这个问题:

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]
我期待着返回:

  • 预测的_指数=[1,5]
  • 得分=[0.821,0.920]

有没有我遗漏的简单解决方案?

端到端问题实际上比原始的“索引”问题更简单,您只需执行
tf。其中
要根据您的maskI值选择预测元素或“默认值”,我不确定我是否完全理解它是如何简单的。我需要索引(因为我在推理时通过一个表传递索引以获得实际的标签名称)和预测元素(因为我希望能够对预测结果进行一些监视/评估)因此,如果我有预测,你会建议我如何获取高于阈值(比如0.5)的指数和值?为了澄清,默认值只会像前面的问题一样作为“填充”应用。因此,如果最长的行有3个元素>阈值,那么只有1个元素>阈值的行将需要添加2个填充元素(如前一个问题)我更新了问题以更好地涵盖端到端的目标。@YaroslavBulatov我仍在努力了解如何仅使用tf就可以实现这一点。其中--我能够使用默认值创建密集表示,但我想要的实际上是一个向量,它只包含满足条件的值。因此,对于第一行,我只想要[1,5]和[0.821,0.920]——如果tf.wehre有一个我忽略的非常简单的解决方案,我很想听到它!