提交 20c93fc6 authored 作者: Ian Goodfellow's avatar Ian Goodfellow

fewer var_descriptor collisions

上级 ea0a1715
...@@ -1111,14 +1111,17 @@ def var_descriptor(obj, _prev_obs=None, _tag_generator=None): ...@@ -1111,14 +1111,17 @@ def var_descriptor(obj, _prev_obs=None, _tag_generator=None):
name = '<ndarray:' name = '<ndarray:'
name += 'strides=['+','.join(str(stride) for stride in obj.strides)+']' name += 'strides=['+','.join(str(stride) for stride in obj.strides)+']'
name += ',digest='+hashlib.md5(obj).hexdigest()+'>' name += ',digest='+hashlib.md5(obj).hexdigest()+'>'
elif hasattr(obj, 'name') and obj.name is not None:
name = obj.name
elif hasattr(obj, 'owner') and obj.owner is not None: elif hasattr(obj, 'owner') and obj.owner is not None:
name = str(obj.owner.op) + '(' name = str(obj.owner.op) + '('
name += ','.join(var_descriptor(ipt, name += ','.join(var_descriptor(ipt,
_prev_obs=_prev_obs, _tag_generator=_tag_generator) for ipt _prev_obs=_prev_obs, _tag_generator=_tag_generator) for ipt
in obj.owner.inputs) in obj.owner.inputs)
name += ')' name += ')'
elif hasattr(obj, 'name') and obj.name is not None:
# Only print the name if there is no owner.
# This way adding a name to an intermediate node can't make
# a deeper graph get the same descriptor as a shallower one
name = obj.name
else: else:
name = str(obj) name = str(obj)
if ' at 0x' in name: if ' at 0x' in name:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论