系统信息
自2020-03-28起,此问题适用于所有TF版本的所有系统。
问题描述
MHLO_SignOp被定义为在输入为-0.0时返回-0.0,但TF_SignOp和TFL_SignOp在-0.0上都返回+0.0。例如:
>>> tf.math.sign([-0.0, 0.0, 1, -1])
<tf.Tensor: shape=(4,), dtype=float32, numpy=array([ 0., 0., 1., -1.], dtype=float32)>
源代码/日志
tensorflow/tensorflow/compiler/mlir/tensorflow/transforms/legalize_hlo_patterns.td
第132行 in 6b167da
| | [MHLO_SignOp, TF_SignOp], |
2条答案
按热度按时间z9smfwbn1#
一个更好的解决方案可能是将结果限制在
[-1, 1]
(假设clamp(NaN, [-1, 1])
仍然是NaN
),然后四舍五入(远离零)。mrzz3bfm2#
看起来我们还没有为
mhlo.round_nearest_afz
生成任何 MHLO->TF 转换模式。目前将mhlo.sign
转换为tf.sign
可能实际上是最好的选择。