提交 5e1295f2 authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Merge pull request #3798 from nouiz/small

Small
...@@ -1027,7 +1027,8 @@ def pydotprint(fct, outfile=None, ...@@ -1027,7 +1027,8 @@ def pydotprint(fct, outfile=None,
g.write(outfile, prog='dot', format=format) g.write(outfile, prog='dot', format=format)
except pd.InvocationException: except pd.InvocationException:
# based on https://github.com/Theano/Theano/issues/2988 # based on https://github.com/Theano/Theano/issues/2988
if map(int, pd.__version__.split(".")) < [1, 0, 28]: version = getattr(pd, '__version__', "")
if version and map(int, version.split(".")) < [1, 0, 28]:
raise Exception("Old version of pydot detected, which can " raise Exception("Old version of pydot detected, which can "
"cause issues with pydot printing. Try " "cause issues with pydot printing. Try "
"upgrading pydot version to a newer one") "upgrading pydot version to a newer one")
...@@ -1062,7 +1063,10 @@ def pydotprint_variables(vars, ...@@ -1062,7 +1063,10 @@ def pydotprint_variables(vars,
if not pydot_imported: if not pydot_imported:
raise RuntimeError("Failed to import pydot. You must install pydot" raise RuntimeError("Failed to import pydot. You must install pydot"
" and graphviz for `pydotprint_variables` to work.") " and graphviz for `pydotprint_variables` to work.")
if pd.__name__ == "pydot_ng":
raise RuntimeError("pydotprint_variables do not support pydot_ng."
"pydotprint_variables is also deprecated, "
"use pydotprint() that support pydot_ng")
g = pd.Dot() g = pd.Dot()
my_list = {} my_list = {}
orphanes = [] orphanes = []
...@@ -1186,11 +1190,12 @@ def pydotprint_variables(vars, ...@@ -1186,11 +1190,12 @@ def pydotprint_variables(vars,
except pd.InvocationException as e: except pd.InvocationException as e:
# Some version of pydot are bugged/don't work correctly with # Some version of pydot are bugged/don't work correctly with
# empty label. Provide a better user error message. # empty label. Provide a better user error message.
if pd.__version__ == "1.0.28" and "label=]" in e.message: version = getattr(pd, '__version__', "")
if version == "1.0.28" and "label=]" in e.message:
raise Exception("pydot 1.0.28 is know to be bugged. Use another " raise Exception("pydot 1.0.28 is know to be bugged. Use another "
"working version of pydot") "working version of pydot")
elif "label=]" in e.message: elif "label=]" in e.message:
raise Exception("Your version of pydot " + pd.__version__ + raise Exception("Your version of pydot " + version +
" returned an error. Version 1.0.28 is known" " returned an error. Version 1.0.28 is known"
" to be bugged and 1.0.25 to be working with" " to be bugged and 1.0.25 to be working with"
" Theano. Using another version of pydot could" " Theano. Using another version of pydot could"
......
...@@ -528,7 +528,7 @@ class ConvOp(OpenMPOp): ...@@ -528,7 +528,7 @@ class ConvOp(OpenMPOp):
self.out_mode = output_mode self.out_mode = output_mode
if self.out_mode not in ["valid", "full"]: if self.out_mode not in ["valid", "full"]:
raise Exception("Mode %s not implemented" % self.out_mode) raise Exception("Mode %s not implemented" % str(self.out_mode))
if any((shp is not None) and (shp <= 0) for shp in self.outshp): if any((shp is not None) and (shp <= 0) for shp in self.outshp):
raise Exception("Bad size for the output shape. Verify that [post-" raise Exception("Bad size for the output shape. Verify that [post-"
......
...@@ -82,7 +82,8 @@ def test_pydotprint_variables(): ...@@ -82,7 +82,8 @@ def test_pydotprint_variables():
theano.theano_logger.addHandler(new_handler) theano.theano_logger.addHandler(new_handler)
try: try:
theano.printing.pydotprint(x * 2) theano.printing.pydotprint(x * 2)
theano.printing.pydotprint_variables(x * 2) if not theano.printing.pd.__name__ == "pydot_ng":
theano.printing.pydotprint_variables(x * 2)
finally: finally:
theano.theano_logger.addHandler(orig_handler) theano.theano_logger.addHandler(orig_handler)
theano.theano_logger.removeHandler(new_handler) theano.theano_logger.removeHandler(new_handler)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论