提交 f452c040 authored 作者: Frederic Bastien's avatar Frederic Bastien

Make Updater print with a name

上级 f99578af
...@@ -1623,10 +1623,14 @@ class PatternSub(LocalOptimizer): ...@@ -1623,10 +1623,14 @@ class PatternSub(LocalOptimizer):
# Use the following classes to apply LocalOptimizers # Use the following classes to apply LocalOptimizers
class Updater: class Updater:
def __init__(self, importer, pruner, chin): def __init__(self, importer, pruner, chin, name=None):
self.importer = importer self.importer = importer
self.pruner = pruner self.pruner = pruner
self.chin = chin self.chin = chin
self.name = name
def __str__(self):
return "Updater{%s}" % str(self.name)
def on_import(self, fgraph, node, reason): def on_import(self, fgraph, node, reason):
if self.importer: if self.importer:
...@@ -1726,7 +1730,7 @@ class NavigatorOptimizer(Optimizer): ...@@ -1726,7 +1730,7 @@ class NavigatorOptimizer(Optimizer):
self.ignore_newtrees = ignore_newtrees self.ignore_newtrees = ignore_newtrees
self.failure_callback = failure_callback self.failure_callback = failure_callback
def attach_updater(self, fgraph, importer, pruner, chin=None): def attach_updater(self, fgraph, importer, pruner, chin=None, name=None):
""" """
Install some FunctionGraph listeners to help the navigator deal with Install some FunctionGraph listeners to help the navigator deal with
the ignore_trees-related functionality. the ignore_trees-related functionality.
...@@ -1741,6 +1745,8 @@ class NavigatorOptimizer(Optimizer): ...@@ -1741,6 +1745,8 @@ class NavigatorOptimizer(Optimizer):
from the graph. from the graph.
chin chin
"on change input" called whenever a node's inputs change. "on change input" called whenever a node's inputs change.
name
name of the Updater to attach.
Returns Returns
------- -------
...@@ -1755,7 +1761,7 @@ class NavigatorOptimizer(Optimizer): ...@@ -1755,7 +1761,7 @@ class NavigatorOptimizer(Optimizer):
if importer is None and pruner is None: if importer is None and pruner is None:
return None return None
u = Updater(importer, pruner, chin) u = Updater(importer, pruner, chin, name=name)
fgraph.attach_feature(u) fgraph.attach_feature(u)
return u return u
...@@ -1903,7 +1909,7 @@ class TopoOptimizer(NavigatorOptimizer): ...@@ -1903,7 +1909,7 @@ class TopoOptimizer(NavigatorOptimizer):
except ValueError: except ValueError:
pass pass
u = self.attach_updater(fgraph, importer, pruner) u = self.attach_updater(fgraph, importer, pruner, name=self.name)
nb = 0 nb = 0
try: try:
t0 = time.time() t0 = time.time()
...@@ -2218,7 +2224,7 @@ class EquilibriumOptimizer(NavigatorOptimizer): ...@@ -2218,7 +2224,7 @@ class EquilibriumOptimizer(NavigatorOptimizer):
except ValueError: except ValueError:
pass pass
u = self.attach_updater(fgraph, importer, pruner) u = self.attach_updater(fgraph, importer, pruner, name=self.name)
try: try:
while q: while q:
node = q.pop() node = q.pop()
......
...@@ -1435,7 +1435,8 @@ class GemmOptimizer(Optimizer): ...@@ -1435,7 +1435,8 @@ class GemmOptimizer(Optimizer):
if new_node is not node: if new_node is not node:
nodelist.append(new_node) nodelist.append(new_node)
u = theano.gof.opt.Updater(on_import, None, None) u = theano.gof.opt.Updater(on_import, None, None,
name="GemmOptimizer")
fgraph.attach_feature(u) fgraph.attach_feature(u)
while did_something: while did_something:
nb_iter += 1 nb_iter += 1
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论