Tensorflow重写Tensor
类、including ^{
但是,__eq__
seems to be conspicuously absent的实现:
ops.Tensor._override_operator("__lt__", gen_math_ops.less)
ops.Tensor._override_operator("__le__", gen_math_ops.less_equal)
ops.Tensor._override_operator("__gt__", gen_math_ops.greater)
ops.Tensor._override_operator("__ge__", gen_math_ops.greater_equal)
为什么tensorflow的张量的==
与numpy数组的行为不一样?在
代码示例:
^{pr2}$另一方面,对于numpy:
a = np.asarray([1,2])
b = np.asarray([3, 4])
a == b
>>> array([False, False], dtype=bool)
{1}实现this GitHub issue,这解释了为什么张量测试身份而不广播:
注释器是正确的;如果} method :
__eq__
被重载为广播,那么您就不能在字典中使用张量作为键。定义__hash__
方法的对象(如果要将此类对象用作字典中的键,则必需),必须为两个相等的对象生成相同的哈希值;请参见^{但是广播将为具有不同哈希值的对象生成一个“真”张量对象。在
(关于} ,张量确实实现了这一点)。在
__eq__
将破坏布尔测试的推测是错误的;布尔测试使用^{如果需要对张量进行元素相等性测试,可以使用^{} 和^{} 函数。在
相关问题 更多 >
编程相关推荐