PyAutoFit
                                
                                 PyAutoFit copied to clipboard
                                
                                    PyAutoFit copied to clipboard
                            
                            
                            
                        Errors with NaNs with graphical model following PriorFactors
The following script:
https://github.com/Jammy2211/autofit_workspace/blob/release/scripts/howtofit/chapter_graphical_models/tutorial_3_expectation_propagation.py
The following errors are printed at various points in the run:
2021-11-18 18:31:06,925 - tutorial_3_expectation_propagation - INFO - Removing zip file
2021-11-18 18:31:06,961 - autofit.graphical.expectation_propagation - ERROR - array must not contain infs or NaNs
Traceback (most recent call last):
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/expectation_propagation/__init__.py", line 159, in run
    model_approx, status = optimiser.optimise(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 328, in optimise
    opt = OptFactor.from_approx(factor_approx, transform=whiten)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 125, in from_approx
    return cls(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 84, in __init__
    self.bounds = self.transform.transform_bounds(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 155, in transform_bounds
    lower = self * lower
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 323, in rightmethod
    return method(self, x.reshape(-1, self.lsize)).reshape(x.shape)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 362, in __rtruediv__
    return solve_triangular(self.L, x.T, lower=True).T
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/linalg/basic.py", line 334, in solve_triangular
    b1 = _asarray_validated(b, check_finite=check_finite)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/_lib/_util.py", line 272, in _asarray_validated
    a = toarray(a)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/numpy/lib/function_base.py", line 488, in asarray_chkfinite
    raise ValueError(
ValueError: array must not contain infs or NaNs
2021-11-18 18:31:06,966 - autofit.graphical.expectation_propagation - ERROR - array must not contain infs or NaNs
Traceback (most recent call last):
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/expectation_propagation/__init__.py", line 159, in run
    model_approx, status = optimiser.optimise(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 328, in optimise
    opt = OptFactor.from_approx(factor_approx, transform=whiten)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 125, in from_approx
    return cls(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 84, in __init__
    self.bounds = self.transform.transform_bounds(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 155, in transform_bounds
    lower = self * lower
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 323, in rightmethod
    return method(self, x.reshape(-1, self.lsize)).reshape(x.shape)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 362, in __rtruediv__
    return solve_triangular(self.L, x.T, lower=True).T
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/linalg/basic.py", line 334, in solve_triangular
    b1 = _asarray_validated(b, check_finite=check_finite)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/_lib/_util.py", line 272, in _asarray_validated
    a = toarray(a)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/numpy/lib/function_base.py", line 488, in asarray_chkfinite
    raise ValueError(
ValueError: array must not contain infs or NaNs
2021-11-18 18:31:06,968 - autofit.graphical.expectation_propagation - ERROR - array must not contain infs or NaNs
Traceback (most recent call last):
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/expectation_propagation/__init__.py", line 159, in run
    model_approx, status = optimiser.optimise(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 328, in optimise
    opt = OptFactor.from_approx(factor_approx, transform=whiten)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 125, in from_approx
    return cls(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 84, in __init__
    self.bounds = self.transform.transform_bounds(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 155, in transform_bounds
    lower = self * lower
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 323, in rightmethod
    return method(self, x.reshape(-1, self.lsize)).reshape(x.shape)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 362, in __rtruediv__
    return solve_triangular(self.L, x.T, lower=True).T
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/linalg/basic.py", line 334, in solve_triangular
    b1 = _asarray_validated(b, check_finite=check_finite)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/_lib/_util.py", line 272, in _asarray_validated
    a = toarray(a)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/numpy/lib/function_base.py", line 488, in asarray_chkfinite
    raise ValueError(
ValueError: array must not contain infs or NaNs
2021-11-18 18:31:06,970 - autofit.graphical.expectation_propagation - ERROR - array must not contain infs or NaNs
Traceback (most recent call last):
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/expectation_propagation/__init__.py", line 159, in run
    model_approx, status = optimiser.optimise(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 328, in optimise
    opt = OptFactor.from_approx(factor_approx, transform=whiten)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 125, in from_approx
    return cls(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 84, in __init__
    self.bounds = self.transform.transform_bounds(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 155, in transform_bounds
    lower = self * lower
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 323, in rightmethod
    return method(self, x.reshape(-1, self.lsize)).reshape(x.shape)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 362, in __rtruediv__
    return solve_triangular(self.L, x.T, lower=True).T
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/linalg/basic.py", line 334, in solve_triangular
    b1 = _asarray_validated(b, check_finite=check_finite)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/_lib/_util.py", line 272, in _asarray_validated
    a = toarray(a)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/numpy/lib/function_base.py", line 488, in asarray_chkfinite
    raise ValueError(
ValueError: array must not contain infs or NaNs
2021-11-18 18:31:06,973 - autofit.graphical.expectation_propagation - ERROR - array must not contain infs or NaNs
Traceback (most recent call last):
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/expectation_propagation/__init__.py", line 159, in run
    model_approx, status = optimiser.optimise(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 328, in optimise
    opt = OptFactor.from_approx(factor_approx, transform=whiten)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 125, in from_approx
    return cls(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 84, in __init__
    self.bounds = self.transform.transform_bounds(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 155, in transform_bounds
    lower = self * lower
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 323, in rightmethod
    return method(self, x.reshape(-1, self.lsize)).reshape(x.shape)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 362, in __rtruediv__
    return solve_triangular(self.L, x.T, lower=True).T
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/linalg/basic.py", line 334, in solve_triangular
    b1 = _asarray_validated(b, check_finite=check_finite)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/_lib/_util.py", line 272, in _asarray_validated
    a = toarray(a)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/numpy/lib/function_base.py", line 488, in asarray_chkfinite
    raise ValueError(
ValueError: array must not contain infs or NaNs
2021-11-18 18:31:06,975 - autofit.graphical.expectation_propagation - ERROR - array must not contain infs or NaNs
Traceback (most recent call last):
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/expectation_propagation/__init__.py", line 159, in run
    model_approx, status = optimiser.optimise(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 328, in optimise
    opt = OptFactor.from_approx(factor_approx, transform=whiten)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 125, in from_approx
    return cls(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 84, in __init__
    self.bounds = self.transform.transform_bounds(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 155, in transform_bounds
    lower = self * lower
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 323, in rightmethod
    return method(self, x.reshape(-1, self.lsize)).reshape(x.shape)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 362, in __rtruediv__
    return solve_triangular(self.L, x.T, lower=True).T
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/linalg/basic.py", line 334, in solve_triangular
    b1 = _asarray_validated(b, check_finite=check_finite)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/_lib/_util.py", line 272, in _asarray_validated
    a = toarray(a)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/numpy/lib/function_base.py", line 488, in asarray_chkfinite
    raise ValueError(
ValueError: array must not contain infs or NaNs
2021-11-18 18:31:06,978 - autofit.graphical.expectation_propagation - ERROR - array must not contain infs or NaNs
Traceback (most recent call last):
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/expectation_propagation/__init__.py", line 159, in run
    model_approx, status = optimiser.optimise(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 328, in optimise
    opt = OptFactor.from_approx(factor_approx, transform=whiten)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 125, in from_approx
    return cls(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/graphical/optimise.py", line 84, in __init__
    self.bounds = self.transform.transform_bounds(
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 155, in transform_bounds
    lower = self * lower
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 323, in rightmethod
    return method(self, x.reshape(-1, self.lsize)).reshape(x.shape)
  File "/mnt/c/Users/Jammy/Code/PyAuto/PyAutoFit/autofit/mapper/operator.py", line 362, in __rtruediv__
    return solve_triangular(self.L, x.T, lower=True).T
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/linalg/basic.py", line 334, in solve_triangular
    b1 = _asarray_validated(b, check_finite=check_finite)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/scipy/_lib/_util.py", line 272, in _asarray_validated
    a = toarray(a)
  File "/home/jammy/venvs/PyAuto/lib/python3.8/site-packages/numpy/lib/function_base.py", line 488, in asarray_chkfinite
    raise ValueError(
ValueError: array must not contain infs or NaNs
2021-11-18 18:31:06,980 - tutorial_3_expectation_propagation - INFO - Starting search
2021-11-18 18:31:06,981 - tutorial_3_expectation_propagation - INFO - Saving path info
2021-11-18 18:31:06,996 - tutorial_3_expectation_propagation - INFO - Not complete. Starting non-linear search.
2021-11-18 18:31:06,997 - tutorial_3_expectation_propagation - INFO - number_of_cores == 1...
2021-11-18 18:31:06,997 - tutorial_3_expectation_propagation - INFO - ...not using pool
2021-11-18 18:31:06,997 - autofit.non_linear.initializer - INFO - Generating initial samples of model, which are subject to prior limits and other constraints.
2021-11-18 18:31:07,026 - tutorial_3_expectation_propagation - INFO - No Dynesty samples found, beginning new non-linear search.
501it [00:01, 336.08it/s, +100 | bound: 13 | nc: 1 | ncall: 5101 | eff(%): 11.782 | loglstar:   -inf < 180.871 <    inf | logz: 174.458 +/-  0.415 | dlogz:  0.040 >  0.109]
2021-11-18 18:31:08,624 - tutorial_3_expectation_propagation - INFO - 110000 Iterations: Performing update (Visualization, outputting samples, etc.).
output/fcd9e73d1bfd01c4b7143f9a8ab249f2/AnalysisFactor0/optimization_2/tutorial_3_expectation_propagation/840741008c9d563be6b044f5234924e0/image data.png
output/fcd9e73d1bfd01c4b7143f9a8ab249f2/AnalysisFactor0/optimization_2/tutorial_3_expectation_propagation/840741008c9d563be6b044f5234924e0/image model_data.png
output/fcd9e73d1bfd01c4b7143f9a8ab249f2/AnalysisFactor0/optimization_2/tutorial_3_expectation_propagation/840741008c9d563be6b044f5234924e0/image residual_map.png
output/fcd9e73d1bfd01c4b7143f9a8ab249f2/AnalysisFactor0/optimization_2/tutorial_3_expectation_propagation/840741008c9d563be6b044f5234924e0/image chi_squared_map.png
869it [00:01, 645.24it/s, +100 | bound: 56 | nc: 1 | ncall: 8932 | eff(%): 10.849 | loglstar:   -inf < 180.919 <    inf | logz: 174.528 +/-  0.320 | dlogz:  0.001 >  0.109]
2021-11-18 18:31:10,669 - tutorial_3_expectation_propagation - INFO - 115000 Iterations: Performing update (Visualization, outputting samples, etc.).
output/fcd9e73d1bfd01c4b7143f9a8ab249f2/AnalysisFactor0/optimization_2/tutorial_3_expectation_propagation/840741008c9d563be6b044f5234924e0/image data.png
output/fcd9e73d1bfd01c4b7143f9a8ab249f2/AnalysisFactor0/optimization_2/tutorial_3_expectation_propagation/840741008c9d563be6b044f5234924e0/image model_data.png
output/fcd9e73d1bfd01c4b7143f9a8ab249f2/Analysis
@matthewghgriffiths this is an error that may have been silenced previously due to exception handling in Expectation Propagation. Any idea what is causing this and if we should be concerned?
I'm not reproducing these issues. It looks like there's an issue with the bounds calculation though, if the bounds are infinite this could cause the issue. So perhaps there should be a check that the bounds being passed are unbounded (i.e. infinite).
cool will look into it