提交 dd22ded8 authored 作者: Frederic's avatar Frederic

Reuse old Rebroadcast.__hash__ as it was working well

上级 1856586e
......@@ -617,6 +617,12 @@ class Rebroadcast(gof.Op):
"Rebroadcast needs bool for new broadcast pattern. Got ",
broad)
def __hash__(self):
# Need special __hash__ as dict aren't hashable.
# no ambiguity because each item key is unique
items = sorted(iteritems(self.axis))
return hash((type(self), tuple(items)))
def __str__(self):
if len(self.axis) == 0:
broadcast_pattern = []
......
......@@ -678,16 +678,7 @@ class Op(utils.object2, PureOp, CLinkerOp):
def __hash__(self):
if hasattr(self, '__props__'):
dicts = []
props = []
for elem in self._props():
if isinstance(elem, dict):
dicts.append(elem)
else:
props.append(elem)
h = hash((type(self), tuple(props),
tuple(utils.hash_from_dict(elem) for elem in dicts)))
return h
return hash((type(self), self._props()))
else:
return super(Op, self).__hash__()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论