CUQIpy 1.1.0.post0.dev17__tar.gz → 1.1.0.post0.dev21__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of CUQIpy might be problematic. Click here for more details.

Files changed (118) hide show
  1. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/CUQIpy.egg-info/PKG-INFO +1 -1
  2. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/PKG-INFO +1 -1
  3. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/_version.py +3 -3
  4. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_cwmh.py +1 -1
  5. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_gibbs.py +5 -4
  6. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_laplace_approximation.py +2 -3
  7. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_mh.py +1 -1
  8. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_rto.py +2 -3
  9. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_sampler.py +4 -5
  10. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/CUQIpy.egg-info/SOURCES.txt +0 -0
  11. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/CUQIpy.egg-info/dependency_links.txt +0 -0
  12. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/CUQIpy.egg-info/requires.txt +0 -0
  13. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/CUQIpy.egg-info/top_level.txt +0 -0
  14. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/LICENSE +0 -0
  15. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/README.md +0 -0
  16. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/__init__.py +0 -0
  17. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/_messages.py +0 -0
  18. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/array/__init__.py +0 -0
  19. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/array/_array.py +0 -0
  20. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/config.py +0 -0
  21. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/data/__init__.py +0 -0
  22. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/data/_data.py +0 -0
  23. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/data/astronaut.npz +0 -0
  24. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/data/camera.npz +0 -0
  25. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/data/cat.npz +0 -0
  26. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/data/cookie.png +0 -0
  27. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/data/satellite.mat +0 -0
  28. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/density/__init__.py +0 -0
  29. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/density/_density.py +0 -0
  30. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/diagnostics.py +0 -0
  31. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/__init__.py +0 -0
  32. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_beta.py +0 -0
  33. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_cauchy.py +0 -0
  34. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_cmrf.py +0 -0
  35. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_custom.py +0 -0
  36. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_distribution.py +0 -0
  37. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_gamma.py +0 -0
  38. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_gaussian.py +0 -0
  39. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_gmrf.py +0 -0
  40. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_inverse_gamma.py +0 -0
  41. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_joint_distribution.py +0 -0
  42. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_laplace.py +0 -0
  43. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_lmrf.py +0 -0
  44. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_lognormal.py +0 -0
  45. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_modifiedhalfnormal.py +0 -0
  46. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_normal.py +0 -0
  47. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_posterior.py +0 -0
  48. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_smoothed_laplace.py +0 -0
  49. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/distribution/_uniform.py +0 -0
  50. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/__init__.py +0 -0
  51. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/__init__.py +0 -0
  52. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_conjugate.py +0 -0
  53. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_conjugate_approx.py +0 -0
  54. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_direct.py +0 -0
  55. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_hmc.py +0 -0
  56. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_langevin_algorithm.py +0 -0
  57. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_pcn.py +0 -0
  58. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/experimental/mcmc/_utilities.py +0 -0
  59. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/geometry/__init__.py +0 -0
  60. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/geometry/_geometry.py +0 -0
  61. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/implicitprior/__init__.py +0 -0
  62. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/implicitprior/_regularizedGMRF.py +0 -0
  63. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/implicitprior/_regularizedGaussian.py +0 -0
  64. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/implicitprior/_regularizedUnboundedUniform.py +0 -0
  65. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/likelihood/__init__.py +0 -0
  66. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/likelihood/_likelihood.py +0 -0
  67. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/model/__init__.py +0 -0
  68. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/model/_model.py +0 -0
  69. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/operator/__init__.py +0 -0
  70. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/operator/_operator.py +0 -0
  71. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/pde/__init__.py +0 -0
  72. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/pde/_pde.py +0 -0
  73. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/problem/__init__.py +0 -0
  74. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/problem/_problem.py +0 -0
  75. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/__init__.py +0 -0
  76. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_conjugate.py +0 -0
  77. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_conjugate_approx.py +0 -0
  78. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_cwmh.py +0 -0
  79. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_gibbs.py +0 -0
  80. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_hmc.py +0 -0
  81. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_langevin_algorithm.py +0 -0
  82. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_laplace_approximation.py +0 -0
  83. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_mh.py +0 -0
  84. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_pcn.py +0 -0
  85. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_rto.py +0 -0
  86. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/sampler/_sampler.py +0 -0
  87. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/samples/__init__.py +0 -0
  88. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/samples/_samples.py +0 -0
  89. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/solver/__init__.py +0 -0
  90. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/solver/_solver.py +0 -0
  91. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/testproblem/__init__.py +0 -0
  92. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/testproblem/_testproblem.py +0 -0
  93. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/utilities/__init__.py +0 -0
  94. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/utilities/_get_python_variable_name.py +0 -0
  95. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/cuqi/utilities/_utilities.py +0 -0
  96. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/pyproject.toml +0 -0
  97. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/requirements.txt +0 -0
  98. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/setup.cfg +0 -0
  99. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/setup.py +0 -0
  100. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_MRFs.py +0 -0
  101. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_abstract_distribution_density.py +0 -0
  102. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_bayesian_inversion.py +0 -0
  103. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_density.py +0 -0
  104. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_distribution.py +0 -0
  105. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_distributions_shape.py +0 -0
  106. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_geometry.py +0 -0
  107. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_implicit_priors.py +0 -0
  108. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_joint_distribution.py +0 -0
  109. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_likelihood.py +0 -0
  110. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_model.py +0 -0
  111. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_pde.py +0 -0
  112. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_posterior.py +0 -0
  113. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_problem.py +0 -0
  114. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_sampler.py +0 -0
  115. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_samples.py +0 -0
  116. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_solver.py +0 -0
  117. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_testproblem.py +0 -0
  118. {cuqipy-1.1.0.post0.dev17 → cuqipy-1.1.0.post0.dev21}/tests/test_utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: CUQIpy
3
- Version: 1.1.0.post0.dev17
3
+ Version: 1.1.0.post0.dev21
4
4
  Summary: Computational Uncertainty Quantification for Inverse problems in Python
5
5
  Maintainer-email: "Nicolai A. B. Riis" <nabr@dtu.dk>, "Jakob S. Jørgensen" <jakj@dtu.dk>, "Amal M. Alghamdi" <amaal@dtu.dk>, Chao Zhang <chaz@dtu.dk>
6
6
  License: Apache License
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: CUQIpy
3
- Version: 1.1.0.post0.dev17
3
+ Version: 1.1.0.post0.dev21
4
4
  Summary: Computational Uncertainty Quantification for Inverse problems in Python
5
5
  Maintainer-email: "Nicolai A. B. Riis" <nabr@dtu.dk>, "Jakob S. Jørgensen" <jakj@dtu.dk>, "Amal M. Alghamdi" <amaal@dtu.dk>, Chao Zhang <chaz@dtu.dk>
6
6
  License: Apache License
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2024-08-26T08:07:58+0200",
11
+ "date": "2024-08-26T11:10:44+0200",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "9d87eb837ab12ccedf61101e396df2ab1cb37764",
15
- "version": "1.1.0.post0.dev17"
14
+ "full-revisionid": "d8a5799ec1e1e581a09e032cbf01bd3eab1b960d",
15
+ "version": "1.1.0.post0.dev21"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -101,7 +101,7 @@ class CWMH(ProposalBasedSampler):
101
101
  "Target should be an instance of "+\
102
102
  f"{cuqi.density.Density.__class__.__name__}")
103
103
  # Fail when there is no log density, which is currently assumed to be the case in case NaN is returned.
104
- if np.isnan(self.target.logd(self._default_initial_point)):
104
+ if np.isnan(self.target.logd(self._get_default_initial_point(self.dim))):
105
105
  raise ValueError("Target does not have valid logd")
106
106
 
107
107
  def validate_proposal(self):
@@ -255,10 +255,11 @@ class HybridGibbs:
255
255
  """ Get initial points for each parameter """
256
256
  initial_points = {}
257
257
  for par_name in self.par_names:
258
- if hasattr(self.target.get_density(par_name), 'init_point'):
259
- initial_points[par_name] = self.target.get_density(par_name).init_point
260
- else:
261
- initial_points[par_name] = np.ones(self.target.get_density(par_name).dim)
258
+ sampler = self.samplers[par_name]
259
+ if sampler.initial_point is None:
260
+ sampler.initial_point = sampler._get_default_initial_point(self.target.get_density(par_name).dim)
261
+ initial_points[par_name] = sampler.initial_point
262
+
262
263
  return initial_points
263
264
 
264
265
  def _store_samples(self):
@@ -151,7 +151,6 @@ class UGLA(Sampler):
151
151
  if not isinstance(self.prior, cuqi.distribution.LMRF):
152
152
  raise ValueError('Unadjusted Gaussian Laplace approximation (UGLA) requires LMRF prior')
153
153
 
154
- @property
155
- def _default_initial_point(self):
154
+ def _get_default_initial_point(self, dim):
156
155
  """ Get the default initial point for the sampler. Defaults to an array of zeros. """
157
- return np.zeros(self.dim)
156
+ return np.zeros(dim)
@@ -33,7 +33,7 @@ class MH(ProposalBasedSampler):
33
33
 
34
34
  def validate_target(self):
35
35
  # Fail only when there is no log density, which is currently assumed to be the case in case NaN is returned.
36
- if np.isnan(self.target.logd(self._default_initial_point)):
36
+ if np.isnan(self.target.logd(self._get_default_initial_point(self.dim))):
37
37
  raise ValueError("Target does not have valid logd")
38
38
 
39
39
  def validate_proposal(self):
@@ -150,10 +150,9 @@ class LinearRTO(Sampler):
150
150
  if not hasattr(self.prior, "sqrtprecTimesMean"):
151
151
  raise TypeError("Prior must contain a sqrtprecTimesMean attribute")
152
152
 
153
- @property
154
- def _default_initial_point(self):
153
+ def _get_default_initial_point(self, dim):
155
154
  """ Get the default initial point for the sampler. Defaults to an array of zeros. """
156
- return np.zeros(self.dim)
155
+ return np.zeros(dim)
157
156
 
158
157
  class RegularizedLinearRTO(LinearRTO):
159
158
  """
@@ -80,7 +80,7 @@ class Sampler(ABC):
80
80
 
81
81
  # Default values
82
82
  if self.initial_point is None:
83
- self.initial_point = self._default_initial_point
83
+ self.initial_point = self._get_default_initial_point(self.dim)
84
84
 
85
85
  # State variables
86
86
  self.current_point = self.initial_point
@@ -386,10 +386,9 @@ class Sampler(ABC):
386
386
  if not self._is_initialized:
387
387
  self.initialize()
388
388
 
389
- @property
390
- def _default_initial_point(self):
389
+ def _get_default_initial_point(self, dim):
391
390
  """ Return the default initial point for the sampler. Defaults to an array of ones. """
392
- return np.ones(self.dim)
391
+ return np.ones(dim)
393
392
 
394
393
  def __repr__(self):
395
394
  """ Return a string representation of the sampler. """
@@ -452,7 +451,7 @@ class ProposalBasedSampler(Sampler, ABC):
452
451
 
453
452
  # Default values
454
453
  if self.initial_point is None:
455
- self.initial_point = self._default_initial_point
454
+ self.initial_point = self._get_default_initial_point(self.dim)
456
455
 
457
456
  if self.proposal is None:
458
457
  self.proposal = self._default_proposal