提交 47e48ded authored 作者: Frederic Bastien's avatar Frederic Bastien

Fix pickling of DebugMode by using the string of reasons. Theano local optimizer…

Fix pickling of DebugMode by using the string of reasons. Theano local optimizer aren't picklable most of the time.
上级 f63ec912
...@@ -1388,7 +1388,7 @@ class _FunctionGraphEvent(object): ...@@ -1388,7 +1388,7 @@ class _FunctionGraphEvent(object):
self.node = node self.node = node
self.op = node.op self.op = node.op
self.idx = idx self.idx = idx
self.reason = reason self.reason = str(reason)
def __str__(self): def __str__(self):
if self.kind == 'change': if self.kind == 'change':
...@@ -1472,7 +1472,7 @@ class _VariableEquivalenceTracker(object): ...@@ -1472,7 +1472,7 @@ class _VariableEquivalenceTracker(object):
def on_prune(self, fgraph, node, reason): def on_prune(self, fgraph, node, reason):
self.event_list.append(_FunctionGraphEvent('prune', node, self.event_list.append(_FunctionGraphEvent('prune', node,
reason=reason)) reason=str(reason)))
assert node in self.active_nodes assert node in self.active_nodes
assert node not in self.inactive_nodes assert node not in self.inactive_nodes
self.active_nodes.remove(node) self.active_nodes.remove(node)
...@@ -1480,7 +1480,7 @@ class _VariableEquivalenceTracker(object): ...@@ -1480,7 +1480,7 @@ class _VariableEquivalenceTracker(object):
def on_import(self, fgraph, node, reason): def on_import(self, fgraph, node, reason):
self.event_list.append(_FunctionGraphEvent('import', node, self.event_list.append(_FunctionGraphEvent('import', node,
reason=reason)) reason=str(reason)))
assert node not in self.active_nodes assert node not in self.active_nodes
self.active_nodes.add(node) self.active_nodes.add(node)
...@@ -1501,8 +1501,9 @@ class _VariableEquivalenceTracker(object): ...@@ -1501,8 +1501,9 @@ class _VariableEquivalenceTracker(object):
self.replaced_by.setdefault(r, []) self.replaced_by.setdefault(r, [])
def on_change_input(self, fgraph, node, i, r, new_r, reason=None): def on_change_input(self, fgraph, node, i, r, new_r, reason=None):
reason = str(reason)
self.event_list.append(_FunctionGraphEvent('change', node, self.event_list.append(_FunctionGraphEvent('change', node,
reason=str(reason), idx=i)) reason=reason, idx=i))
self.reasons.setdefault(new_r, []) self.reasons.setdefault(new_r, [])
self.replaced_by.setdefault(new_r, []) self.replaced_by.setdefault(new_r, [])
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论