张量比较不能按预期工作

时间:2017-08-13 12:57:05

标签: python tensorflow

我需要编写一段代码来了解张量条目是否具有特定值“2”。

这是我用于测试的代码:

sess = tf.Session()
some_values = tf.constant([1,2,3,4], dtype=tf.int32)
values_equal_two = (some_values == 2 )
print(sess.run(values_equal_two))

这就是我得到的错误:

TypeError: Fetch argument False has invalid type <class 'bool'>, must be a 
string or Tensor. (Can not convert a bool into a Tensor or Operation.)

令人惊讶的是,如果我将==运算符更改为&gt; =这样:

sess = tf.Session()
some_values = tf.constant([1, 2, 3, 4], dtype=tf.int32)
values_equal_two = (some_values >= 2)
print(sess.run(values_equal_two))

它工作正常,并返回:

[False  True  True  True]

我想知道问题可能是什么,或者是否有可能以另一种方式执行相同的任务。提前感谢任何建议。

2 个答案:

答案 0 :(得分:1)

.catch运算符在>=期间没有按预期工作的原因是因为== python方法在TensorFlow Python API中已经过载__ge__ 1}} hasn&#t; t(查看此answer)。

如果要检查是否相等,可以使用支持广播的tf.equal

__eq__

打印sess = tf.Session() some_values = tf.constant([1, 2, 3, 4], dtype=tf.int32) values_equal_two = tf.equal(some_values, 2) print(sess.run(values_equal_two))

答案 1 :(得分:0)

检查目标列表中是否存在单个或多个值的一种替代方法。 使用tf.setdiff1d

Private Sub GetSUMofUnits()
    Dim total As Integer

    For Each row As DataGridViewRow In dgvSubjects.Rows
        If row.Cells(3).Value > 0
            total += row.Cells(3).Value
        End If
    Next
    txtTotalUnits.Text = total
End Sub