tensorflow MHLO_SignOp不应该转换为TF_SignOp,

lx0bsm1f  于 6个月前  发布在  其他
关注(0)|答案(2)|浏览(46)

系统信息

自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], |

z9smfwbn

z9smfwbn1#

一个更好的解决方案可能是将结果限制在[-1, 1](假设clamp(NaN, [-1, 1])仍然是NaN),然后四舍五入(远离零)。

mrzz3bfm

mrzz3bfm2#

看起来我们还没有为 mhlo.round_nearest_afz 生成任何 MHLO->TF 转换模式。目前将 mhlo.sign 转换为 tf.sign 可能实际上是最好的选择。

相关问题