提交 0e2d7a79 authored 作者: Frederic Bastien's avatar Frederic Bastien

Alloc OpRemove to accept a class to remove. Tested by test_gradien.py:test_grad_clip

上级 fd05e3a3
...@@ -1542,9 +1542,11 @@ class OpRemove(LocalOptimizer): ...@@ -1542,9 +1542,11 @@ class OpRemove(LocalOptimizer):
return [self.op] return [self.op]
def transform(self, node): def transform(self, node):
if node.op != self.op: if inspect.isclass(self.op):
return False if isinstance(node.op, self.op):
return node.inputs return node.inputs
elif node.op == self.op:
return node.inputs
def __str__(self): def __str__(self):
return "%s(x) -> x" % (self.op) return "%s(x) -> x" % (self.op)
......
...@@ -7502,11 +7502,9 @@ register_canonicalize(gof.OpRemove(theano.gradient.disconnected_grad_), ...@@ -7502,11 +7502,9 @@ register_canonicalize(gof.OpRemove(theano.gradient.disconnected_grad_),
name='remove_disconnected_grad') name='remove_disconnected_grad')
@register_canonicalize register_canonicalize(gof.OpRemove(theano.gradient.GradClip),
@gof.local_optimizer([theano.gradient.GradClip]) 'fast_compile', 'fast_run',
def local_grad_clip(node): name='remove_grad_clip')
if isinstance(node.op, theano.gradient.GradClip):
return node.inputs
@register_useless @register_useless
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论