提交 361bd296 编写于 作者: F fengjiayi

update

上级 33ae1331
...@@ -240,20 +240,30 @@ class Variable(object): ...@@ -240,20 +240,30 @@ class Variable(object):
def __str__(self): def __str__(self):
return self.to_string(True) return self.to_string(True)
def to_string(self, throw_on_error): def to_string(self, throw_on_error, with_details=False):
""" """
Get debug string. Get debug string.
Args: Args:
throw_on_error(bool): True if raise an exception when self is not throw_on_error(bool): True if raise an exception when self is not
intialized. intialized.
with_details(bool): more details about variables and parameters
(e.g. trainable, optimize_attr, ...) will be printed when with_details is True
Returns(str): The debug string. Returns(str): The debug string.
""" """
assert isinstance(throw_on_error, bool) and isinstance(with_details,
bool)
protostr = self.desc.serialize_to_string() protostr = self.desc.serialize_to_string()
proto = framework_pb2.VarDesc.FromString(str(protostr)) proto = framework_pb2.VarDesc.FromString(str(protostr))
return _debug_string_(proto, throw_on_error) res_str = _debug_string_(proto, throw_on_error)
if with_details:
additional_attr = ("error_clip", "stop_gradient")
for attr_name in additional_attr:
res_str += "%s: %s\n" % (attr_name,
str(getattr(self, attr_name)))
return res_str
__repr__ = __str__ __repr__ = __str__
...@@ -636,7 +646,8 @@ class Block(object): ...@@ -636,7 +646,8 @@ class Block(object):
Args: Args:
throw_on_error(bool): raise exception when self is not initialized throw_on_error(bool): raise exception when self is not initialized
when throw_on_error is True when throw_on_error is True
with_details(bool): more details about paramters(e.g. trainable, optimize_attr, ...) will be printed when with_details is True with_details(bool): more details about variables and parameters
(e.g. trainable, optimize_attr, ...) will be printed when with_details is True
Returns(str): The debug string. Returns(str): The debug string.
...@@ -649,7 +660,7 @@ class Block(object): ...@@ -649,7 +660,7 @@ class Block(object):
self.idx, self.parent_idx) self.idx, self.parent_idx)
for var in self.vars.itervalues(): for var in self.vars.itervalues():
res_str += "\n vars {\n %s }" % re_add_indent.sub( res_str += "\n vars {\n %s }" % re_add_indent.sub(
r"\n \1", var.to_string(throw_on_error)) r"\n \1", var.to_string(throw_on_error, with_details))
for op in self.ops: for op in self.ops:
res_str += "\n ops {\n %s }" % re_add_indent.sub( res_str += "\n ops {\n %s }" % re_add_indent.sub(
r"\n \1", op.to_string(throw_on_error)) r"\n \1", op.to_string(throw_on_error))
...@@ -828,7 +839,8 @@ class Program(object): ...@@ -828,7 +839,8 @@ class Program(object):
Args: Args:
throw_on_error(bool): raise exception when self is not initialized throw_on_error(bool): raise exception when self is not initialized
when throw_on_error is True when throw_on_error is True
with_details(bool): more details about paramters(e.g. trainable, optimize_attr, ...) will be printed when with_details is True with_details(bool): more details about variables and parameters
(e.g. trainable, optimize_attr, ...) will be printed when with_details is True
Returns(str): The debug string. Returns(str): The debug string.
...@@ -997,12 +1009,29 @@ class Parameter(Variable): ...@@ -997,12 +1009,29 @@ class Parameter(Variable):
def __str__(self): def __str__(self):
return self.to_string(True) return self.to_string(True)
def to_string(self, throw_on_error): def to_string(self, throw_on_error, with_details=False):
res_str = Variable.to_string(self, throw_on_error) """
To debug string.
Args:
throw_on_error(bool): raise exception when self is not initialized
when throw_on_error is True
with_details(bool): more details about variables and parameters
(e.g. trainable, optimize_attr, ...) will be printed when with_details is True
Returns(str): The debug string.
"""
assert isinstance(throw_on_error, bool) and isinstance(with_details,
bool)
if with_details:
res_str = Variable.to_string(self, throw_on_error, True)
additional_attr = ("trainable", "optimize_attr", "regularizer", additional_attr = ("trainable", "optimize_attr", "regularizer",
"gradient_clip_attr") "gradient_clip_attr")
for attr_name in additional_attr: for attr_name in additional_attr:
res_str += "%s: %s\n" % (attr_name, str(getattr(self, attr_name))) res_str += "%s: %s\n" % (attr_name,
str(getattr(self, attr_name)))
else:
res_str = Variable.to_string(self, throw_on_error, False)
return res_str return res_str
__repr__ = __str__ __repr__ = __str__
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册