【问题标题】:Compare two tensors elementwise (tensorflow)逐元素比较两个张量(张量流)
【发布时间】:2018-07-09 21:37:17
【问题描述】:

我有两个 1D Tensorflow 张量,我想逐元素比较它们并创建一个新的张量,记录它们不同的索引。对于上下文,它们每个都将索引存储到不同的 2D 张量中,所以如果我可以像使用 numpy 数组一样使用它们,我可能会执行以下操作:

for i in range(0, len(predicted_indices)):
    if predicted_indices[i] != correct_indices[i]:
        failed_preds.append(self.input_placeholder[i])

但是在 predict_indices 和 correct_indices 都是张量的情况下,我该怎么做呢?

也可以通过其他方式做到这一点。我正在尝试存储我的模型在某个时期出错的具体示例。

【问题讨论】:

  • 您是否在寻找tf.equal(prediction, labels),它返回一个布尔型张量,指示predictionlabels 之间的差异?
  • 顺便说一句,tensorflow 本身提供了 utils 函数来衡量 tf.metrics 模块中包含的模型的性能,看看它你可能会发现对你有用的东西
  • 看起来那些可以告诉我有多少误报,我想要的是哪些例子是误报。不过谢谢!

标签: python tensorflow neural-network


【解决方案1】:

在 Tensorflow 中,您可以在实际执行操作之前构建一个图表,在其中定义操作。 在这种情况下,您可以使用的操作是 tf.equal 函数,您可以在其中将 predict_indices 和 input_placeholder 作为参数传递。这将返回一个布尔张量。

在这里查看操作和其他比较操作:https://www.tensorflow.org/versions/master/api_docs/python/control_flow_ops/comparison_operators#equal

祝你好运!

【讨论】:

    【解决方案2】:

    这有两个方面

    sess1=tf.InteractiveSession()
    a=np.random.randint(5,size=(1,10))
    b=np.random.randint(5,size=(1,10))
    
    a1=tf.convert_to_tensor(a,dtype=tf.float32)
    b1=tf.convert_to_tensor(b,dtype=tf.float32)
    

    布尔比较

    print(a1.eval())
    print(b1.eval())
    result=tf.equal(a1,b1)
    print(result.eval())
    

    元素比较

    print(a1.eval())
    print(b1.eval())
    result=tf.add(a1,-a2)
    print(result.eval())
    

    一旦你有了这个,你可以在任何你想要的容量中使用它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 2018-10-23
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-27
      相关资源
      最近更新 更多