提交 0d49394d authored 作者: Olivier Breuleux's avatar Olivier Breuleux

added Op.strdesc() for printing

上级 f5c82cdc
......@@ -71,6 +71,9 @@ class DimShuffle(Op, Viewer):
def desc(self):
return (self.__class__, tuple(self.new_order))
def strdesc(self):
return "DimShuffle{%s}" % "".join(str(x) for x in self.new_order)
def perform(self):
res = self.inputs[0].data
shape = list(res.shape)
......@@ -159,6 +162,12 @@ class Broadcast(Op, Destroyer):
def desc(self):
return (Broadcast, self.scalar_opclass, tuple(self.inplace_pattern.items()))
def strdesc(self):
if self.inplace_pattern:
return "Broadcast{%s}%s" % (self.shadow.strdesc(), str(self.inplace_pattern))
else:
return "Broadcast{%s}" % (self.shadow.strdesc())
def destroy_map(self):
ret = {}
for key, value in self.inplace_pattern.items():
......@@ -397,6 +406,12 @@ class CAReduce(Op):
def desc(self):
return (self.__class__, self.scalar_opclass, tuple(self.dimensions_to_reduce))
def strdesc(self):
if set(self.dimensions_to_reduce) != set(xrange(len(self.inputs[0].broadcastable))):
return "Reduce{%s}{%s}" % (self.scalar_opclass.__name__, "".join(str(x) for x in self.dimensions_to_reduce))
else:
return "Reduce{%s}" % self.scalar_opclass.__name__
def clone_with_new_inputs(self, *new_inputs):
return CAReduce(self.scalar_opclass, new_inputs, self.dimensions_to_reduce)
......
......@@ -212,7 +212,7 @@ def io_toposort(i, o, orderings = {}):
default_leaf_formatter = str
default_node_formatter = lambda op, argstrings: "%s(%s)" % (op.__class__.__name__,
default_node_formatter = lambda op, argstrings: "%s(%s)" % (op.strdesc(),
", ".join(argstrings))
def op_as_string(i, op,
......
......@@ -78,6 +78,9 @@ class Op(object):
def desc(self):
return self.__class__
def strdesc(self):
return self.__class__.__name__
#
#
#
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论