提交 e6a86a01 authored 作者: Christophe Van Gysel's avatar Christophe Van Gysel

Exempt np.random.mtrand.RandomState from NaN/inf/big_number checking in NanGuardMode.

上级 51a26add
...@@ -56,6 +56,8 @@ def contains_nan(arr): ...@@ -56,6 +56,8 @@ def contains_nan(arr):
""" """
if isinstance(arr, theano.gof.type.CDataType._cdata_type): if isinstance(arr, theano.gof.type.CDataType._cdata_type):
return False return False
elif isinstance(arr, np.random.mtrand.RandomState):
return False
return np.isnan(np.min(arr)) return np.isnan(np.min(arr))
...@@ -82,6 +84,8 @@ def contains_inf(arr): ...@@ -82,6 +84,8 @@ def contains_inf(arr):
""" """
if isinstance(arr, theano.gof.type.CDataType._cdata_type): if isinstance(arr, theano.gof.type.CDataType._cdata_type):
return False return False
elif isinstance(arr, np.random.mtrand.RandomState):
return False
return np.isinf(np.nanmax(arr)) or np.isinf(np.nanmin(arr)) return np.isinf(np.nanmax(arr)) or np.isinf(np.nanmin(arr))
...@@ -164,6 +168,8 @@ class NanGuardMode(Mode): ...@@ -164,6 +168,8 @@ class NanGuardMode(Mode):
err = (self.gpuabsmax(var.reshape(var.size)) > 1e10) err = (self.gpuabsmax(var.reshape(var.size)) > 1e10)
elif isinstance(var, theano.gof.type.CDataType._cdata_type): elif isinstance(var, theano.gof.type.CDataType._cdata_type):
err = False err = False
elif isinstance(var, np.random.mtrand.RandomState):
err = False
else: else:
err = (np.abs(var).max() > 1e10) err = (np.abs(var).max() > 1e10)
if err: if err:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论