gpflow 2.9.2__tar.gz → 2.10.1__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.
Files changed (228) hide show
  1. {gpflow-2.9.2/gpflow.egg-info → gpflow-2.10.1}/PKG-INFO +1 -3
  2. {gpflow-2.9.2 → gpflow-2.10.1}/RELEASE.md +30 -1
  3. gpflow-2.10.1/VERSION +1 -0
  4. {gpflow-2.9.2 → gpflow-2.10.1}/doc/sphinx/conf.py +1 -1
  5. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/keras.py +4 -1
  6. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/optimizers/mcmc.py +1 -3
  7. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/posteriors.py +7 -4
  8. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/utilities/__init__.py +2 -0
  9. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/utilities/traversal.py +18 -2
  10. gpflow-2.10.1/gpflow/versions.py +11 -0
  11. {gpflow-2.9.2 → gpflow-2.10.1/gpflow.egg-info}/PKG-INFO +1 -3
  12. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow.egg-info/requires.txt +4 -1
  13. {gpflow-2.9.2 → gpflow-2.10.1}/setup.py +15 -7
  14. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/kernels/test_broadcasting.py +1 -1
  15. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_initial_value.py +1 -1
  16. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_deepcopy.py +16 -1
  17. gpflow-2.9.2/VERSION +0 -1
  18. gpflow-2.9.2/gpflow/versions.py +0 -6
  19. {gpflow-2.9.2 → gpflow-2.10.1}/LICENSE +0 -0
  20. {gpflow-2.9.2 → gpflow-2.10.1}/MANIFEST.in +0 -0
  21. {gpflow-2.9.2 → gpflow-2.10.1}/README.md +0 -0
  22. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/__init__.py +0 -0
  23. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/benchmark_api.py +0 -0
  24. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/benchmarks.py +0 -0
  25. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/dataset_api.py +0 -0
  26. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/datasets.py +0 -0
  27. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/grouping.py +0 -0
  28. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/metadata.py +0 -0
  29. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/metric_api.py +0 -0
  30. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/metrics.py +0 -0
  31. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/model_api.py +0 -0
  32. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/models.py +0 -0
  33. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/paths.py +0 -0
  34. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/plot.py +0 -0
  35. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/plotter_api.py +0 -0
  36. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/plotters.py +0 -0
  37. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/registry.py +0 -0
  38. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/run.py +0 -0
  39. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/sharding.py +0 -0
  40. {gpflow-2.9.2 → gpflow-2.10.1}/benchmark/tag.py +0 -0
  41. {gpflow-2.9.2 → gpflow-2.10.1}/doc/sphinx/benchmarks.rst +0 -0
  42. {gpflow-2.9.2 → gpflow-2.10.1}/doc/sphinx/bibliography.rst +0 -0
  43. {gpflow-2.9.2 → gpflow-2.10.1}/doc/sphinx/getting_started.rst +0 -0
  44. {gpflow-2.9.2 → gpflow-2.10.1}/doc/sphinx/index.rst +0 -0
  45. {gpflow-2.9.2 → gpflow-2.10.1}/doc/sphinx/installation.rst +0 -0
  46. {gpflow-2.9.2 → gpflow-2.10.1}/doc/sphinx/user_guide.rst +0 -0
  47. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/__init__.py +0 -0
  48. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/base.py +0 -0
  49. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/ci_utils.py +0 -0
  50. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/conditionals/__init__.py +0 -0
  51. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/conditionals/conditionals.py +0 -0
  52. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/conditionals/dispatch.py +0 -0
  53. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/conditionals/multioutput/__init__.py +0 -0
  54. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/conditionals/multioutput/conditionals.py +0 -0
  55. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/conditionals/multioutput/sample_conditionals.py +0 -0
  56. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/conditionals/sample_conditionals.py +0 -0
  57. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/conditionals/uncertain_conditionals.py +0 -0
  58. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/conditionals/util.py +0 -0
  59. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/config/__config__.py +0 -0
  60. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/config/__init__.py +0 -0
  61. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/covariances/__init__.py +0 -0
  62. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/covariances/dispatch.py +0 -0
  63. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/covariances/kufs.py +0 -0
  64. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/covariances/kuus.py +0 -0
  65. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/covariances/multioutput/__init__.py +0 -0
  66. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/covariances/multioutput/kufs.py +0 -0
  67. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/covariances/multioutput/kuus.py +0 -0
  68. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/__init__.py +0 -0
  69. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/cross_kernels.py +0 -0
  70. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/dispatch.py +0 -0
  71. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/expectations.py +0 -0
  72. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/linears.py +0 -0
  73. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/mean_functions.py +0 -0
  74. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/misc.py +0 -0
  75. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/products.py +0 -0
  76. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/quadratures.py +0 -0
  77. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/squared_exponentials.py +0 -0
  78. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/expectations/sums.py +0 -0
  79. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/experimental/__init__.py +0 -0
  80. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/experimental/utils.py +0 -0
  81. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/functions.py +0 -0
  82. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/inducing_variables/__init__.py +0 -0
  83. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/inducing_variables/inducing_patch.py +0 -0
  84. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/inducing_variables/inducing_variables.py +0 -0
  85. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/inducing_variables/multioutput/__init__.py +0 -0
  86. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/inducing_variables/multioutput/inducing_variables.py +0 -0
  87. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/__init__.py +0 -0
  88. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/base.py +0 -0
  89. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/categorical.py +0 -0
  90. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/changepoints.py +0 -0
  91. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/convolutional.py +0 -0
  92. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/linears.py +0 -0
  93. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/misc.py +0 -0
  94. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/multioutput/__init__.py +0 -0
  95. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/multioutput/kernels.py +0 -0
  96. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/periodic.py +0 -0
  97. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/statics.py +0 -0
  98. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kernels/stationaries.py +0 -0
  99. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/kullback_leiblers.py +0 -0
  100. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/likelihoods/__init__.py +0 -0
  101. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/likelihoods/base.py +0 -0
  102. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/likelihoods/misc.py +0 -0
  103. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/likelihoods/multiclass.py +0 -0
  104. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/likelihoods/multilatent.py +0 -0
  105. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/likelihoods/scalar_continuous.py +0 -0
  106. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/likelihoods/scalar_discrete.py +0 -0
  107. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/likelihoods/utils.py +0 -0
  108. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/logdensities.py +0 -0
  109. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/mean_functions.py +0 -0
  110. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/__init__.py +0 -0
  111. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/cglb.py +0 -0
  112. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/gplvm.py +0 -0
  113. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/gpmc.py +0 -0
  114. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/gpr.py +0 -0
  115. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/model.py +0 -0
  116. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/sgpmc.py +0 -0
  117. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/sgpr.py +0 -0
  118. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/svgp.py +0 -0
  119. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/training_mixins.py +0 -0
  120. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/util.py +0 -0
  121. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/models/vgp.py +0 -0
  122. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/monitor/__init__.py +0 -0
  123. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/monitor/base.py +0 -0
  124. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/monitor/tensorboard.py +0 -0
  125. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/mypy_flags.py +0 -0
  126. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/optimizers/__init__.py +0 -0
  127. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/optimizers/natgrad.py +0 -0
  128. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/optimizers/scipy.py +0 -0
  129. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/probability_distributions.py +0 -0
  130. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/py.typed +0 -0
  131. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/quadrature/__init__.py +0 -0
  132. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/quadrature/base.py +0 -0
  133. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/quadrature/deprecated.py +0 -0
  134. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/quadrature/gauss_hermite.py +0 -0
  135. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/type_flags.py +0 -0
  136. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/utilities/bijectors.py +0 -0
  137. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/utilities/misc.py +0 -0
  138. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/utilities/model_utils.py +0 -0
  139. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/utilities/multipledispatch.py +0 -0
  140. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/utilities/ops.py +0 -0
  141. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow/utilities/parameter_or_function.py +0 -0
  142. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow.egg-info/SOURCES.txt +0 -0
  143. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow.egg-info/dependency_links.txt +0 -0
  144. {gpflow-2.9.2 → gpflow-2.10.1}/gpflow.egg-info/top_level.txt +0 -0
  145. {gpflow-2.9.2 → gpflow-2.10.1}/setup.cfg +0 -0
  146. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/__init__.py +0 -0
  147. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/conditionals/__init__.py +0 -0
  148. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/conditionals/test_broadcasted_conditionals.py +0 -0
  149. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/conditionals/test_conditionals.py +0 -0
  150. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/conditionals/test_multioutput.py +0 -0
  151. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/conditionals/test_uncertain_conditional.py +0 -0
  152. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/conditionals/test_util.py +0 -0
  153. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/config/__init__.py +0 -0
  154. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/config/test_config.py +0 -0
  155. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/conftest.py +0 -0
  156. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/covariances/__init__.py +0 -0
  157. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/covariances/test_base_covariances.py +0 -0
  158. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/covariances/test_multioutput.py +0 -0
  159. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/expectations/__init__.py +0 -0
  160. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/expectations/test_expectations.py +0 -0
  161. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/experimental/__init__.py +0 -0
  162. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/experimental/test_utils.py +0 -0
  163. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/kernels/__init__.py +0 -0
  164. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/kernels/reference.py +0 -0
  165. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/kernels/test_changepoints.py +0 -0
  166. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/kernels/test_coregion.py +0 -0
  167. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/kernels/test_kernels.py +0 -0
  168. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/kernels/test_positive_semidefinite.py +0 -0
  169. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/kernels/test_scaled_euclid_dist.py +0 -0
  170. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/likelihoods/__init__.py +0 -0
  171. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/likelihoods/test_function_params.py +0 -0
  172. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/likelihoods/test_heteroskedastic.py +0 -0
  173. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/likelihoods/test_heteroskedastic_constant_variance.py +0 -0
  174. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/likelihoods/test_likelihoods.py +0 -0
  175. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/likelihoods/test_multiclass.py +0 -0
  176. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/likelihoods/test_switched_likelihood.py +0 -0
  177. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/__init__.py +0 -0
  178. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_cglb.py +0 -0
  179. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_gplvm.py +0 -0
  180. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_gpr.py +0 -0
  181. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_gpr_posterior.py +0 -0
  182. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_mcmc.py +0 -0
  183. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_methods.py +0 -0
  184. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_model_predict.py +0 -0
  185. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_sgpr.py +0 -0
  186. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_sgpr_posterior.py +0 -0
  187. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_svgp.py +0 -0
  188. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_svgp_posterior.py +0 -0
  189. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_training_mixins.py +0 -0
  190. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_variational.py +0 -0
  191. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_vgp.py +0 -0
  192. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/models/test_vgp_posterior.py +0 -0
  193. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/optimizers/__init__.py +0 -0
  194. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/optimizers/test_mcmc.py +0 -0
  195. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/optimizers/test_natural_gradient.py +0 -0
  196. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/optimizers/test_scipy.py +0 -0
  197. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/posteriors/__init__.py +0 -0
  198. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/posteriors/conftest.py +0 -0
  199. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/posteriors/test_bo_integration.py +0 -0
  200. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/posteriors/test_posteriors.py +0 -0
  201. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_all.py +0 -0
  202. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_base.py +0 -0
  203. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_base_prior.py +0 -0
  204. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_base_training.py +0 -0
  205. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_functions.py +0 -0
  206. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_inducing_variables.py +0 -0
  207. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_kullback_leiblers.py +0 -0
  208. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_logdensities.py +0 -0
  209. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/test_monitor.py +0 -0
  210. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/__init__.py +0 -0
  211. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_bijectors.py +0 -0
  212. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_misc.py +0 -0
  213. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_model_utils.py +0 -0
  214. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_multipledispatch.py +0 -0
  215. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_ops.py +0 -0
  216. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_parameter_or_function.py +0 -0
  217. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_set_trainable.py +0 -0
  218. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_training_loop.py +0 -0
  219. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_traversal.py +0 -0
  220. {gpflow-2.9.2 → gpflow-2.10.1}/tests/gpflow/utilities/test_utilities.py +0 -0
  221. {gpflow-2.9.2 → gpflow-2.10.1}/tests/integration/__init__.py +0 -0
  222. {gpflow-2.9.2 → gpflow-2.10.1}/tests/integration/test_benchmark.py +0 -0
  223. {gpflow-2.9.2 → gpflow-2.10.1}/tests/integration/test_docs.py +0 -0
  224. {gpflow-2.9.2 → gpflow-2.10.1}/tests/integration/test_dynamic_shapes.py +0 -0
  225. {gpflow-2.9.2 → gpflow-2.10.1}/tests/integration/test_linear_noise.py +0 -0
  226. {gpflow-2.9.2 → gpflow-2.10.1}/tests/integration/test_method_equivalence.py +0 -0
  227. {gpflow-2.9.2 → gpflow-2.10.1}/tests/integration/test_model_serialization.py +0 -0
  228. {gpflow-2.9.2 → gpflow-2.10.1}/tests/integration/test_notebooks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gpflow
3
- Version: 2.9.2
3
+ Version: 2.10.1
4
4
  Summary: Gaussian process methods in TensorFlow
5
5
  Home-page: https://www.gpflow.org
6
6
  Author: James Hensman, Alex Matthews
@@ -9,7 +9,6 @@ License: Apache License 2.0
9
9
  Project-URL: Source on GitHub, https://github.com/GPflow/GPflow
10
10
  Project-URL: Documentation, https://gpflow.github.io/GPflow/
11
11
  Keywords: machine-learning gaussian-processes kernels tensorflow
12
- Platform: UNKNOWN
13
12
  Classifier: Development Status :: 5 - Production/Stable
14
13
  Classifier: Environment :: GPU :: NVIDIA CUDA
15
14
  Classifier: Intended Audience :: Developers
@@ -217,4 +216,3 @@ which can be cited by users.
217
216
  url = {https://arxiv.org/abs/2003.01115}
218
217
  }
219
218
  ```
220
-
@@ -33,7 +33,7 @@ This release contains contributions from:
33
33
  <INSERT>, <NAME>, <HERE>, <USING>, <GITHUB>, <HANDLE>
34
34
 
35
35
 
36
- # Release 2.10.0 (next release)
36
+ # Release 2.11.0 (next release)
37
37
 
38
38
  <INSERT SMALL BLURB ABOUT RELEASE FOCUS AREA AND POTENTIAL TOOLCHAIN CHANGES>
39
39
 
@@ -66,6 +66,35 @@ This release contains contributions from:
66
66
  <INSERT>, <NAME>, <HERE>, <USING>, <GITHUB>, <HANDLE>
67
67
 
68
68
 
69
+ # Release 2.10.1
70
+
71
+ This release fixes GPflow to work with recent setuptools.
72
+
73
+ ## Bug Fixes and Other Changes
74
+
75
+ * Migrate from pkg_resources, which is deprecated.
76
+
77
+ ## Thanks to our Contributors
78
+
79
+ This release contains contributions from:
80
+
81
+ uri-granta
82
+
83
+
84
+ # Release 2.10.0
85
+
86
+ This release adds a utility function for converting tf.Modules to float32.
87
+
88
+ ## Improvements
89
+
90
+ * Add the `freeze_as_float32` utility function, which returns a frozen deepcopy of a module with all values converted to tf.float32.
91
+
92
+ ## Thanks to our Contributors
93
+
94
+ This release contains contributions from:
95
+
96
+ uri-granta
97
+
69
98
  # Release 2.9.2
70
99
 
71
100
  This patch release adds support for Tensorflow 2.16.
gpflow-2.10.1/VERSION ADDED
@@ -0,0 +1 @@
1
+ 2.10.1
@@ -24,7 +24,7 @@ copyright = "2023, The GPflow Contributors"
24
24
  author = "The GPflow Contributors"
25
25
 
26
26
  # The full version, including alpha/beta/rc tags
27
- release = "2.9.2"
27
+ release = "2.10.1"
28
28
 
29
29
  # -- General configuration ---------------------------------------------------
30
30
 
@@ -23,8 +23,11 @@
23
23
  # >> from tf_keras.optimizers import Adam
24
24
 
25
25
  try:
26
+ # check whether a (recent) tf_keras is present
26
27
  import tf_keras
27
- except ModuleNotFoundError:
28
+
29
+ tf_keras.optimizers
30
+ except (ModuleNotFoundError, AttributeError): # pragma: no cover
28
31
  import tensorflow.keras as tf_keras
29
32
 
30
33
  tf_keras = tf_keras
@@ -73,9 +73,7 @@ class SamplingHelper:
73
73
  return self._variables
74
74
 
75
75
  @property
76
- def target_log_prob_fn(
77
- self,
78
- ) -> Callable[..., Tuple[tf.Tensor, Callable[..., Tuple[tf.Tensor, Sequence[None]]]]]:
76
+ def target_log_prob_fn(self) -> Callable[..., tf.Tensor]:
79
77
  """
80
78
  The target log probability, adjusted to allow for optimisation to occur on the tracked
81
79
  unconstrained underlying variables.
@@ -967,10 +967,13 @@ class FullyCorrelatedPosterior(BasePosterior):
967
967
  cov = tf.linalg.adjoint(cov)
968
968
 
969
969
  mean = tf.reshape(mean, (N, K))
970
- if full_cov == full_output_cov:
971
- cov_shape = (N, K, N, K) if full_cov else (N, K)
972
- else:
973
- cov_shape = (K, N, N) if full_cov else (N, K, K)
970
+ # the nested if-then-else is to make both mypy and the tensorflow
971
+ # compiler happy across multiple different versions!
972
+ cov_shape: Tuple[int, ...] = (
973
+ ((N, K, N, K) if full_cov else (N, K))
974
+ if full_cov == full_output_cov
975
+ else ((K, N, N) if full_cov else (N, K, K))
976
+ )
974
977
  cov = tf.reshape(cov, cov_shape)
975
978
 
976
979
  return mean, cov
@@ -5,6 +5,7 @@ from .multipledispatch import Dispatcher
5
5
  from .traversal import (
6
6
  deepcopy,
7
7
  freeze,
8
+ freeze_as_float32,
8
9
  leaf_components,
9
10
  multiple_assign,
10
11
  parameter_dict,
@@ -24,6 +25,7 @@ __all__ = [
24
25
  "bijectors",
25
26
  "deepcopy",
26
27
  "freeze",
28
+ "freeze_as_float32",
27
29
  "is_variable",
28
30
  "leaf_components",
29
31
  "misc",
@@ -30,6 +30,7 @@ from ..config import default_summary_fmt
30
30
  __all__ = [
31
31
  "deepcopy",
32
32
  "freeze",
33
+ "freeze_as_float32",
33
34
  "leaf_components",
34
35
  "multiple_assign",
35
36
  "parameter_dict",
@@ -98,10 +99,10 @@ def print_summary(module: tf.Module, fmt: Optional[str] = None) -> None:
98
99
  """
99
100
  fmt = fmt if fmt is not None else default_summary_fmt()
100
101
  if fmt == "notebook":
101
- from IPython.core.display import HTML, display
102
+ from IPython.core.display import HTML, display_html
102
103
 
103
104
  tab = tabulate_module_summary(module, "html")
104
- display(HTML(tab))
105
+ display_html(HTML(tab))
105
106
  else:
106
107
  print(tabulate_module_summary(module, fmt))
107
108
 
@@ -277,6 +278,21 @@ def freeze(input_module: M) -> M:
277
278
  return module_copy
278
279
 
279
280
 
281
+ def freeze_as_float32(input_module: M) -> M:
282
+ """
283
+ Returns a frozen deepcopy of the input tf.Module with all values converted to tf.float32.
284
+
285
+ :param input_module: tf.Module or gpflow.Module.
286
+ :return: Returns a float32 frozen deepcopy of an input object.
287
+ """
288
+ objects_to_freeze = _get_leaf_components(input_module)
289
+ memo_tensors = {
290
+ id(v): tf.cast(tf.convert_to_tensor(v), dtype=tf.float32)
291
+ for v in objects_to_freeze.values()
292
+ }
293
+ return deepcopy(input_module, memo_tensors)
294
+
295
+
280
296
  def traverse_module(
281
297
  m: TraverseInput,
282
298
  acc: Accumulator[State],
@@ -0,0 +1,11 @@
1
+ import sys
2
+
3
+ if sys.version_info >= (3, 8):
4
+ from importlib.metadata import PackageNotFoundError, version
5
+ else:
6
+ from importlib_metadata import PackageNotFoundError, version
7
+
8
+ try:
9
+ __version__ = version("gpflow")
10
+ except PackageNotFoundError:
11
+ __version__ = "develop"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gpflow
3
- Version: 2.9.2
3
+ Version: 2.10.1
4
4
  Summary: Gaussian process methods in TensorFlow
5
5
  Home-page: https://www.gpflow.org
6
6
  Author: James Hensman, Alex Matthews
@@ -9,7 +9,6 @@ License: Apache License 2.0
9
9
  Project-URL: Source on GitHub, https://github.com/GPflow/GPflow
10
10
  Project-URL: Documentation, https://gpflow.github.io/GPflow/
11
11
  Keywords: machine-learning gaussian-processes kernels tensorflow
12
- Platform: UNKNOWN
13
12
  Classifier: Development Status :: 5 - Production/Stable
14
13
  Classifier: Environment :: GPU :: NVIDIA CUDA
15
14
  Classifier: Intended Audience :: Developers
@@ -217,4 +216,3 @@ which can be cited by users.
217
216
  url = {https://arxiv.org/abs/2003.01115}
218
217
  }
219
218
  ```
220
-
@@ -1,7 +1,7 @@
1
1
  check_shapes>=1.0.0
2
2
  deprecated
3
3
  multipledispatch>=0.6
4
- numpy
4
+ numpy<2
5
5
  packaging
6
6
  scipy
7
7
  setuptools>=41.0.0
@@ -15,5 +15,8 @@ tensorflow>=2.4.0
15
15
  [:platform_system == "Darwin" and platform_machine == "arm64"]
16
16
  tensorflow-macos>=2.4.0
17
17
 
18
+ [:python_version < "3.8"]
19
+ importlib_metadata
20
+
18
21
  [ImageToTensorBoard]
19
22
  matplotlib
@@ -3,15 +3,18 @@
3
3
 
4
4
  # pylint: skip-file
5
5
 
6
+ from typing import Any
7
+
6
8
  from setuptools import find_packages, setup
7
9
 
8
10
  ##### Dependencies of GPflow
9
11
 
10
12
  requirements = [
13
+ "importlib_metadata; python_version<'3.8'",
11
14
  "check_shapes>=1.0.0",
12
15
  "deprecated",
13
16
  "multipledispatch>=0.6",
14
- "numpy",
17
+ "numpy<2",
15
18
  "packaging",
16
19
  "scipy",
17
20
  "setuptools>=41.0.0", # to satisfy dependency constraints
@@ -35,6 +38,14 @@ readme_text = read_file("README.md")
35
38
 
36
39
  packages = find_packages(".", exclude=["tests"])
37
40
 
41
+ # Mypy + types-setuptools on Python 3.10+ reject plain dicts for these kwargs.
42
+ _project_urls: Any = {
43
+ "Source on GitHub": "https://github.com/GPflow/GPflow",
44
+ "Documentation": "https://gpflow.github.io/GPflow/",
45
+ }
46
+ _package_data: Any = {"": ["*.lark"]}
47
+ _extras_require: Any = {"ImageToTensorBoard": ["matplotlib"]}
48
+
38
49
  setup(
39
50
  name="gpflow",
40
51
  version=version,
@@ -46,15 +57,12 @@ setup(
46
57
  license="Apache License 2.0",
47
58
  keywords="machine-learning gaussian-processes kernels tensorflow",
48
59
  url="https://www.gpflow.org",
49
- project_urls={
50
- "Source on GitHub": "https://github.com/GPflow/GPflow",
51
- "Documentation": "https://gpflow.github.io/GPflow/",
52
- },
60
+ project_urls=_project_urls,
53
61
  packages=packages,
54
- package_data={"": ["*.lark"]},
62
+ package_data=_package_data,
55
63
  include_package_data=True,
56
64
  install_requires=requirements,
57
- extras_require={"ImageToTensorBoard": ["matplotlib"]},
65
+ extras_require=_extras_require,
58
66
  python_requires=">=3.7",
59
67
  classifiers=[
60
68
  "Development Status :: 5 - Production/Stable",
@@ -134,7 +134,7 @@ def test_broadcasting(
134
134
  rank2 = len(batch2_shape) - 1
135
135
 
136
136
  if isinstance(kernel, kernels.MultioutputKernel):
137
- mo_kernel = cast(kernels.MultioutputKernel, kernel)
137
+ mo_kernel = cast(kernels.MultioutputKernel, kernel) # type: ignore[redundant-cast]
138
138
 
139
139
  loop = cs(
140
140
  unroll_batches(
@@ -74,7 +74,7 @@ def test_assignment_value(path: Path) -> None:
74
74
  these problems.
75
75
  """
76
76
 
77
- self.bad_assigns: List[ast.AST] = []
77
+ self.bad_assigns: List[Union[ast.Assign, ast.AugAssign, ast.AnnAssign]] = []
78
78
  """
79
79
  List of bad assignments, so that we can report multiple errors at the same time.
80
80
  """
@@ -14,7 +14,7 @@ from gpflow.base import TensorType
14
14
 
15
15
  class A(tf.Module):
16
16
  def __init__(self) -> None:
17
- self.var = tf.Variable([1.0])
17
+ self.var = tf.Variable([1.0], dtype=tf.float64)
18
18
  shift = tf.Variable(1e-6)
19
19
  self.bijector = tfp.bijectors.Chain([tfp.bijectors.Softplus(), tfp.bijectors.Shift(shift)])
20
20
 
@@ -87,6 +87,21 @@ def test_freeze() -> None:
87
87
  assert module_frozen.variables == ()
88
88
  assert isinstance(module.module.module.var, tf.Variable)
89
89
  assert isinstance(module_frozen.module.module.var, tf.Tensor)
90
+ assert module.module.module.var.dtype is tf.float64
91
+ assert module_frozen.module.module.var.dtype is tf.float64
92
+ assert module.module.module.var == module_frozen.module.module.var
93
+
94
+
95
+ def test_freeze_as_float32() -> None:
96
+ module = NestedModule(NestedModule(A()))
97
+ module_frozen = gpflow.utilities.freeze_as_float32(module)
98
+ assert len(module.variables) == 2
99
+ assert module_frozen.variables == ()
100
+ assert isinstance(module.module.module.var, tf.Variable)
101
+ assert isinstance(module_frozen.module.module.var, tf.Tensor)
102
+ assert module.module.module.var.dtype is tf.float64
103
+ assert module_frozen.module.module.var.dtype is tf.float32
104
+ assert tf.cast(module.module.module.var, tf.float32) == module_frozen.module.module.var
90
105
 
91
106
 
92
107
  def test_pickle_frozen() -> None:
gpflow-2.9.2/VERSION DELETED
@@ -1 +0,0 @@
1
- 2.9.2
@@ -1,6 +0,0 @@
1
- import pkg_resources
2
-
3
- try:
4
- __version__ = str(pkg_resources.get_distribution("gpflow").parsed_version)
5
- except pkg_resources.DistributionNotFound:
6
- __version__ = "develop"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes