提交 c7ca47f5 authored 作者: Michael I Mandel's avatar Michael I Mandel

fixed bug in x/abs(x) giving nan

上级 3662b679
...@@ -1933,6 +1933,17 @@ register_specialize(local_add_specialize) ...@@ -1933,6 +1933,17 @@ register_specialize(local_add_specialize)
mul_canonizer = in2out(gof.LocalOptGroup(local_mul_canonizer, local_fill_cut, local_fill_sink)) mul_canonizer = in2out(gof.LocalOptGroup(local_mul_canonizer, local_fill_cut, local_fill_sink))
def check_for_x_over_absX(numerators, denominators):
# TODO: this function should dig/search through dimshuffles
# This won't catch a dimshuffled absolute value
for den in list(denominators):
if den.owner and den.owner.op == T.abs_ and den.owner.inputs[0] in numerators:
denominators.remove(den)
numerators.remove(den.owner.inputs[0])
numerators.append(T.sgn(den.owner.inputs[0]))
return numerators, denominators
local_mul_canonizer.add_simplifier(check_for_x_over_absX, 'teststest')
@register_stabilize @register_stabilize
@gof.local_optimizer([T.log]) @gof.local_optimizer([T.log])
def local_log1p(node): def local_log1p(node):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论