提交 2270a8be authored 作者: James Bergstra's avatar James Bergstra

added print_summary functions to optimizers so you can basically print all of…

added print_summary functions to optimizers so you can basically print all of FAST_RUN to the ipython console
上级 be9cff47
......@@ -73,6 +73,8 @@ class Optimizer(object):
"""
pass
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self))
class FromFunctionOptimizer(Optimizer):
"""WRITEME"""
......@@ -81,6 +83,11 @@ class FromFunctionOptimizer(Optimizer):
def add_requirements(self, env):
env.extend(toolbox.ReplaceValidate())
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s id=%i" %(' '*level,
str(self.apply),
id(self))
def optimizer(f):
"""decorator for FromFunctionOptimizer"""
return FromFunctionOptimizer(f)
......@@ -137,6 +144,12 @@ class SeqOptimizer(Optimizer, list):
def __repr__(self):
return list.__repr__(self)
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s (%i)" %(' '*level, self.__class__.__name__, id(self))
for opt in self:
opt.print_summary(stream, level=level+2)
class _metadict:
......@@ -354,6 +367,8 @@ class LocalOptimizer(object):
This is the place to do it."""
env.extend(toolbox.ReplaceValidate())
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self))
class FromFunctionLocalOptimizer(LocalOptimizer):
"""WRITEME"""
......@@ -364,6 +379,10 @@ class FromFunctionLocalOptimizer(LocalOptimizer):
return self._tracks
def __str__(self):
return getattr(self, 'name', '<FromFunctionLocalOptimizer instance>')
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s id=%i" %(' '*level,
str(self.transform),
id(self))
def local_optimizer(*tracks):
def decorator(f):
......@@ -388,6 +407,11 @@ class LocalOptGroup(LocalOptimizer):
if repl:
return repl
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self))
for lopt in self.opts:
lopt.print_summary(stream, level=level+2)
class _LocalOpKeyOptGroup(LocalOptGroup):
"""WRITEME"""
......@@ -466,6 +490,12 @@ class OpRemove(LocalOptimizer):
def __str__(self):
return "%s(x) -> x" % (self.op)
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s(%s) id=%i" %(' '*level,
self.__class__.__name__,
str(self.op),
id(self))
class PatternSub(LocalOptimizer):
"""WRITEME
......@@ -618,6 +648,12 @@ class PatternSub(LocalOptimizer):
def __repr__(self):
return str(self)
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s(%s, %s) id=%i" %(' '*level,
self.__class__.__name__,
str(self.in_pattern),
str(self.out_pattern),
id(self))
##################
......@@ -772,6 +808,11 @@ class NavigatorOptimizer(Optimizer):
if self.local_opt:
self.local_opt.add_requirements(env)
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s (%i)" %(' '*level, self.__class__.__name__, id(self))
self.local_opt.print_summary(stream, level=level+2)
class TopoOptimizer(NavigatorOptimizer):
"""WRITEME"""
......@@ -807,6 +848,7 @@ class TopoOptimizer(NavigatorOptimizer):
self.detach_updater(env, u)
class OpKeyOptimizer(NavigatorOptimizer):
"""WRITEME"""
......@@ -919,6 +961,10 @@ class EquilibriumOptimizer(NavigatorOptimizer):
if max_use_abort:
print >> sys.stderr, "WARNING: EquilibriumOptimizer max'ed out"
def print_summary(self, stream=sys.stdout, level=0):
print >> stream, "%s%s id=%i" %(' '*level, self.__class__.__name__, id(self))
for lopt in self.local_optimizers:
lopt.print_summary(stream, level=level+2)
#################
......
......@@ -95,6 +95,11 @@ class DB(object):
for variable in variables:
return variable
def print_summary(self, stream=sys.stdout):
print >> stream, "%s (id %i)"%(self.__class__.__name__, id(self))
print >> stream, " names", self._names
print >> stream, " db", self.__db__
class Query(object):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论