提交 7cab22d2 authored 作者: Nicolas Ballas's avatar Nicolas Ballas

Print storagemap

上级 1dab0010
...@@ -3,6 +3,7 @@ from copy import copy, deepcopy ...@@ -3,6 +3,7 @@ from copy import copy, deepcopy
import StringIO import StringIO
import sys import sys
import traceback import traceback
import numpy
import theano import theano
from theano.gof import utils from theano.gof import utils
...@@ -179,11 +180,24 @@ def raise_with_op(node, thunk=None, exc_info=None, storage_map=None): ...@@ -179,11 +180,24 @@ def raise_with_op(node, thunk=None, exc_info=None, storage_map=None):
# Prints output_map # Prints output_map
if storage_map is not None: if storage_map is not None:
from sys import getsizeof from sys import getsizeof
detailed_err_msg += "\nStorage Map memory print:\n" detailed_err_msg += "\nStorage map footprint:\n"
for k in storage_map.keys(): for k in storage_map.keys():
if storage_map[k][0] is not None: if storage_map[k][0] is not None:
detailed_err_msg += " - " + str(k) + ", "
shapeinfo = None
if hasattr(storage_map[k][0], 'shape'):
shapeinfo = storage_map[k][0].shape
detailed_err_msg += "shape: %s, " % str(shapeinfo)
if hasattr(storage_map[k][0], 'dtype'):
dtype = storage_map[k][0].dtype
if shapeinfo is None:
detailed_err_msg += "size: %s\n" % numpy.dtype(dtype).itemsize
else:
detailed_err_msg += "size: %s\n" % (numpy.dtype(dtype).itemsize *
numpy.prod(shapeinfo))
else:
bytes = getsizeof(storage_map[k][0]) bytes = getsizeof(storage_map[k][0])
detailed_err_msg += str(k) + ": " + str(bytes) + " bytes\n" detailed_err_msg += "size: %s\n" % str(bytes)
exc_value = exc_type(str(exc_value) + detailed_err_msg + exc_value = exc_type(str(exc_value) + detailed_err_msg +
'\n' + '\n'.join(hints)) '\n' + '\n'.join(hints))
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论