This is an automated email from the ASF dual-hosted git repository. lausen pushed a commit to branch leezu-patch-3 in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
commit 35acfdeaab23a5eff61929ef5825be236b8dc81f Author: Leonard Lausen <lau...@amazon.com> AuthorDate: Fri Jul 10 11:57:06 2020 -0700 Fix scipy dependency in probability module --- .../mxnet/gluon/probability/distributions/utils.py | 25 +++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/python/mxnet/gluon/probability/distributions/utils.py b/python/mxnet/gluon/probability/distributions/utils.py index f8a03c4..75837c2 100644 --- a/python/mxnet/gluon/probability/distributions/utils.py +++ b/python/mxnet/gluon/probability/distributions/utils.py @@ -24,7 +24,10 @@ __all__ = ['getF', 'prob2logit', 'logit2prob', 'cached_property', 'sample_n_shap from functools import update_wrapper from numbers import Number import numpy as onp -import scipy.special as sc +try: + import scipy.special as sc +except ImportError: + sc = None from .... import symbol as sym from .... import ndarray as nd @@ -48,7 +51,10 @@ def digamma(F): """Return digamma(value) """ if isinstance(value, Number): - return sc.digamma(value, dtype='float32') + if sc is not None: + return sc.digamma(value, dtype='float32') + else: + raise ValueError('Numbers are not supported as input if scipy is not installed') return F.npx.digamma(value) return compute @@ -60,7 +66,10 @@ def gammaln(F): """Return log(gamma(value)) """ if isinstance(value, Number): - return sc.gammaln(value, dtype='float32') + if sc is not None: + return sc.gammaln(value, dtype='float32') + else: + raise ValueError('Numbers are not supported as input if scipy is not installed') return F.npx.gammaln(value) return compute @@ -70,7 +79,10 @@ def erf(F): """ def compute(value): if isinstance(value, Number): - return sc.erf(value) + if sc is not None: + return sc.erf(value, dtype='float32') + else: + raise ValueError('Numbers are not supported as input if scipy is not installed') return F.npx.erf(value) return compute @@ -80,7 +92,10 @@ def erfinv(F): """ def compute(value): if isinstance(value, Number): - return sc.erfinv(value) + if sc is not None: + return sc.erfinv(value, dtype='float32') + else: + raise ValueError('Numbers are not supported as input if scipy is not installed') return F.npx.erfinv(value) return compute