【发布时间】:2018-08-30 17:41:57
【问题描述】:
我在从其他张量中查找值时遇到问题。
这个问题的描述如下。 例如,
Input Tensor
s_idx = ( 1, 3, 5, 7)
e_idx = ( 3, 4, 5, 8)
label_s_idx = (2, 2, 3, 6)
label_e_idx = (2, 3, 4, 8)
上图中,s_idx[1]的值等于label_s_idx[2]和e_idx[1]的值> 等于 label_e_idx[2]。
换句话说,问题是如果条件 s_idx[i] == label_s_idx[i] 给 output[i] 值 1并且 e_idx[i] == label_s_idx[j] 满足 label_s_idx 长度(== label_e_idx 长度)范围内的一些 j。
因此,在上面的例子中,输出张量是
output = ( 0, 1, 0, 0)
如何在 Python 中的 Tensorflow 上进行这样的编码?
【问题讨论】:
-
我想
tf.equal(tensorflow.org/api_docs/python/tf/equal) 和tf.logical_and(tensorflow.org/api_docs/python/tf/logical_and) 的组合可以做到这一点。但是我很困惑,因为您在示例中比较索引 1 和 2,而您在描述条件时说s_idx[i] == label_s_idx[i]。更多说明会有所帮助。 -
感谢您的评论。我的意思是
s_idx[i] == label_s_idx[j] and e_idx[i] == label_e_idx[j]对于一些 j。所以,如果(s_idx[i], e_idx[i]) is contained in [ (label_s_idx[0], label_e_idx[0]), (label_s_idx[1], label_e_idx[1]), ... ,(label_s_idx[x], label_e_idx[x]) ],那么output[i]就变成1
标签: python tensorflow