reflectorch 1.3.0__py3-none-any.whl → 1.5.0__py3-none-any.whl

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 reflectorch might be problematic. Click here for more details.

Files changed (96) hide show
  1. reflectorch/__init__.py +17 -17
  2. reflectorch/data_generation/__init__.py +128 -126
  3. reflectorch/data_generation/dataset.py +210 -210
  4. reflectorch/data_generation/likelihoods.py +80 -80
  5. reflectorch/data_generation/noise.py +470 -470
  6. reflectorch/data_generation/priors/__init__.py +60 -60
  7. reflectorch/data_generation/priors/base.py +55 -55
  8. reflectorch/data_generation/priors/exp_subprior_sampler.py +298 -298
  9. reflectorch/data_generation/priors/independent_priors.py +195 -195
  10. reflectorch/data_generation/priors/multilayer_models.py +311 -311
  11. reflectorch/data_generation/priors/multilayer_structures.py +104 -104
  12. reflectorch/data_generation/priors/no_constraints.py +206 -206
  13. reflectorch/data_generation/priors/parametric_models.py +841 -841
  14. reflectorch/data_generation/priors/parametric_subpriors.py +369 -369
  15. reflectorch/data_generation/priors/params.py +252 -252
  16. reflectorch/data_generation/priors/sampler_strategies.py +369 -369
  17. reflectorch/data_generation/priors/scaler_mixin.py +65 -65
  18. reflectorch/data_generation/priors/subprior_sampler.py +371 -371
  19. reflectorch/data_generation/priors/utils.py +118 -118
  20. reflectorch/data_generation/process_data.py +41 -41
  21. reflectorch/data_generation/q_generator.py +280 -246
  22. reflectorch/data_generation/reflectivity/__init__.py +102 -102
  23. reflectorch/data_generation/reflectivity/abeles.py +97 -97
  24. reflectorch/data_generation/reflectivity/kinematical.py +70 -70
  25. reflectorch/data_generation/reflectivity/memory_eff.py +105 -105
  26. reflectorch/data_generation/reflectivity/numpy_implementations.py +120 -120
  27. reflectorch/data_generation/reflectivity/smearing.py +138 -138
  28. reflectorch/data_generation/reflectivity/smearing_pointwise.py +109 -109
  29. reflectorch/data_generation/scale_curves.py +112 -112
  30. reflectorch/data_generation/smearing.py +98 -98
  31. reflectorch/data_generation/utils.py +223 -222
  32. reflectorch/extensions/jupyter/__init__.py +11 -6
  33. reflectorch/extensions/jupyter/api.py +85 -0
  34. reflectorch/extensions/jupyter/callbacks.py +34 -34
  35. reflectorch/extensions/jupyter/components.py +758 -0
  36. reflectorch/extensions/jupyter/custom_select.py +268 -0
  37. reflectorch/extensions/jupyter/log_widget.py +241 -0
  38. reflectorch/extensions/jupyter/model_selection.py +495 -0
  39. reflectorch/extensions/jupyter/plotly_plot_manager.py +329 -0
  40. reflectorch/extensions/jupyter/widget.py +625 -0
  41. reflectorch/extensions/matplotlib/__init__.py +5 -5
  42. reflectorch/extensions/matplotlib/losses.py +32 -32
  43. reflectorch/extensions/refnx/refnx_conversion.py +76 -76
  44. reflectorch/inference/__init__.py +28 -24
  45. reflectorch/inference/inference_model.py +847 -851
  46. reflectorch/inference/input_interface.py +239 -0
  47. reflectorch/inference/loading_data.py +37 -0
  48. reflectorch/inference/multilayer_fitter.py +171 -171
  49. reflectorch/inference/multilayer_inference_model.py +193 -193
  50. reflectorch/inference/plotting.py +524 -98
  51. reflectorch/inference/preprocess_exp/__init__.py +6 -6
  52. reflectorch/inference/preprocess_exp/attenuation.py +36 -36
  53. reflectorch/inference/preprocess_exp/cut_with_q_ratio.py +31 -31
  54. reflectorch/inference/preprocess_exp/footprint.py +81 -81
  55. reflectorch/inference/preprocess_exp/interpolation.py +19 -16
  56. reflectorch/inference/preprocess_exp/normalize.py +21 -21
  57. reflectorch/inference/preprocess_exp/preprocess.py +121 -121
  58. reflectorch/inference/query_matcher.py +81 -81
  59. reflectorch/inference/record_time.py +43 -43
  60. reflectorch/inference/sampler_solution.py +56 -56
  61. reflectorch/inference/scipy_fitter.py +272 -248
  62. reflectorch/inference/torch_fitter.py +87 -87
  63. reflectorch/ml/__init__.py +32 -32
  64. reflectorch/ml/basic_trainer.py +292 -292
  65. reflectorch/ml/callbacks.py +80 -80
  66. reflectorch/ml/dataloaders.py +26 -26
  67. reflectorch/ml/loggers.py +55 -55
  68. reflectorch/ml/schedulers.py +355 -355
  69. reflectorch/ml/trainers.py +200 -191
  70. reflectorch/ml/utils.py +2 -2
  71. reflectorch/models/__init__.py +15 -14
  72. reflectorch/models/activations.py +50 -50
  73. reflectorch/models/encoders/__init__.py +19 -17
  74. reflectorch/models/encoders/conv_encoder.py +218 -218
  75. reflectorch/models/encoders/conv_res_net.py +115 -115
  76. reflectorch/models/encoders/fno.py +133 -133
  77. reflectorch/models/encoders/integral_kernel_embedding.py +390 -0
  78. reflectorch/models/networks/__init__.py +14 -14
  79. reflectorch/models/networks/mlp_networks.py +434 -428
  80. reflectorch/models/networks/residual_net.py +156 -156
  81. reflectorch/paths.py +29 -27
  82. reflectorch/runs/__init__.py +31 -31
  83. reflectorch/runs/config.py +25 -25
  84. reflectorch/runs/slurm_utils.py +93 -93
  85. reflectorch/runs/train.py +78 -78
  86. reflectorch/runs/utils.py +404 -401
  87. reflectorch/test_config.py +4 -4
  88. reflectorch/train.py +4 -4
  89. reflectorch/train_on_cluster.py +4 -4
  90. reflectorch/utils.py +98 -68
  91. {reflectorch-1.3.0.dist-info → reflectorch-1.5.0.dist-info}/METADATA +129 -125
  92. reflectorch-1.5.0.dist-info/RECORD +96 -0
  93. {reflectorch-1.3.0.dist-info → reflectorch-1.5.0.dist-info}/WHEEL +1 -1
  94. {reflectorch-1.3.0.dist-info → reflectorch-1.5.0.dist-info}/licenses/LICENSE.txt +20 -20
  95. reflectorch-1.3.0.dist-info/RECORD +0 -86
  96. {reflectorch-1.3.0.dist-info → reflectorch-1.5.0.dist-info}/top_level.txt +0 -0
@@ -1,60 +1,60 @@
1
- from reflectorch.data_generation.priors.params import Params
2
- from reflectorch.data_generation.priors.base import PriorSampler
3
- from reflectorch.data_generation.priors.no_constraints import BasicPriorSampler
4
- from reflectorch.data_generation.priors.independent_priors import (
5
- SingleParamPrior,
6
- SimplePriorSampler,
7
- UniformParamPrior,
8
- GaussianParamPrior,
9
- TruncatedGaussianParamPrior
10
- )
11
-
12
- from reflectorch.data_generation.priors.subprior_sampler import (
13
- UniformSubPriorParams,
14
- UniformSubPriorSampler,
15
- NarrowSldUniformSubPriorSampler,
16
- )
17
- from reflectorch.data_generation.priors.exp_subprior_sampler import ExpUniformSubPriorSampler
18
- from reflectorch.data_generation.priors.multilayer_structures import (
19
- SimpleMultilayerSampler,
20
- MultilayerStructureParams,
21
- )
22
- from reflectorch.data_generation.priors.parametric_models import (
23
- ParametricModel,
24
- MULTILAYER_MODELS,
25
- )
26
- from reflectorch.data_generation.priors.parametric_subpriors import (
27
- SubpriorParametricSampler,
28
- BasicParams,
29
- )
30
- from reflectorch.data_generation.priors.sampler_strategies import (
31
- SamplerStrategy,
32
- BasicSamplerStrategy,
33
- ConstrainedRoughnessSamplerStrategy,
34
- ConstrainedRoughnessAndImgSldSamplerStrategy,
35
- )
36
-
37
- __all__ = [
38
- "SingleParamPrior",
39
- "SimplePriorSampler",
40
- "UniformParamPrior",
41
- "GaussianParamPrior",
42
- "TruncatedGaussianParamPrior",
43
- "Params",
44
- "PriorSampler",
45
- "BasicPriorSampler",
46
- "UniformSubPriorParams",
47
- "UniformSubPriorSampler",
48
- "NarrowSldUniformSubPriorSampler",
49
- "ExpUniformSubPriorSampler",
50
- "SimpleMultilayerSampler",
51
- "MultilayerStructureParams",
52
- "SubpriorParametricSampler",
53
- "BasicParams",
54
- "ParametricModel",
55
- "MULTILAYER_MODELS",
56
- "SamplerStrategy",
57
- "BasicSamplerStrategy",
58
- "ConstrainedRoughnessSamplerStrategy",
59
- "ConstrainedRoughnessAndImgSldSamplerStrategy",
60
- ]
1
+ from reflectorch.data_generation.priors.params import Params
2
+ from reflectorch.data_generation.priors.base import PriorSampler
3
+ from reflectorch.data_generation.priors.no_constraints import BasicPriorSampler
4
+ from reflectorch.data_generation.priors.independent_priors import (
5
+ SingleParamPrior,
6
+ SimplePriorSampler,
7
+ UniformParamPrior,
8
+ GaussianParamPrior,
9
+ TruncatedGaussianParamPrior
10
+ )
11
+
12
+ from reflectorch.data_generation.priors.subprior_sampler import (
13
+ UniformSubPriorParams,
14
+ UniformSubPriorSampler,
15
+ NarrowSldUniformSubPriorSampler,
16
+ )
17
+ from reflectorch.data_generation.priors.exp_subprior_sampler import ExpUniformSubPriorSampler
18
+ from reflectorch.data_generation.priors.multilayer_structures import (
19
+ SimpleMultilayerSampler,
20
+ MultilayerStructureParams,
21
+ )
22
+ from reflectorch.data_generation.priors.parametric_models import (
23
+ ParametricModel,
24
+ MULTILAYER_MODELS,
25
+ )
26
+ from reflectorch.data_generation.priors.parametric_subpriors import (
27
+ SubpriorParametricSampler,
28
+ BasicParams,
29
+ )
30
+ from reflectorch.data_generation.priors.sampler_strategies import (
31
+ SamplerStrategy,
32
+ BasicSamplerStrategy,
33
+ ConstrainedRoughnessSamplerStrategy,
34
+ ConstrainedRoughnessAndImgSldSamplerStrategy,
35
+ )
36
+
37
+ __all__ = [
38
+ "SingleParamPrior",
39
+ "SimplePriorSampler",
40
+ "UniformParamPrior",
41
+ "GaussianParamPrior",
42
+ "TruncatedGaussianParamPrior",
43
+ "Params",
44
+ "PriorSampler",
45
+ "BasicPriorSampler",
46
+ "UniformSubPriorParams",
47
+ "UniformSubPriorSampler",
48
+ "NarrowSldUniformSubPriorSampler",
49
+ "ExpUniformSubPriorSampler",
50
+ "SimpleMultilayerSampler",
51
+ "MultilayerStructureParams",
52
+ "SubpriorParametricSampler",
53
+ "BasicParams",
54
+ "ParametricModel",
55
+ "MULTILAYER_MODELS",
56
+ "SamplerStrategy",
57
+ "BasicSamplerStrategy",
58
+ "ConstrainedRoughnessSamplerStrategy",
59
+ "ConstrainedRoughnessAndImgSldSamplerStrategy",
60
+ ]
@@ -1,55 +1,55 @@
1
- from torch import Tensor
2
-
3
- from reflectorch.data_generation.priors.params import Params
4
-
5
- __all__ = [
6
- "PriorSampler",
7
- ]
8
-
9
-
10
- class PriorSampler(object):
11
- """Base class for prior samplers"""
12
-
13
- PARAM_CLS = Params
14
-
15
- @property
16
- def param_dim(self) -> int:
17
- """gets the number of parameters (i.e. the parameter dimensionality)"""
18
- return self.PARAM_CLS.layers_num2size(self.max_num_layers)
19
-
20
- @property
21
- def max_num_layers(self) -> int:
22
- """gets the number of layers"""
23
- raise NotImplementedError
24
-
25
- def sample(self, batch_size: int) -> Params:
26
- """sample a batch of parameters"""
27
- raise NotImplementedError
28
-
29
- def scale_params(self, params: Params) -> Tensor:
30
- """scale the parameters to a ML-friendly range"""
31
- raise NotImplementedError
32
-
33
- def restore_params(self, scaled_params: Tensor) -> Params:
34
- """restore the parameters to their original range"""
35
- raise NotImplementedError
36
-
37
- def log_prob(self, params: Params) -> Tensor:
38
- raise NotImplementedError
39
-
40
- def get_indices_within_domain(self, params: Params) -> Tensor:
41
- raise NotImplementedError
42
-
43
- def get_indices_within_bounds(self, params: Params) -> Tensor:
44
- raise NotImplementedError
45
-
46
- def filter_params(self, params: Params) -> Params:
47
- indices = self.get_indices_within_domain(params)
48
- return params[indices]
49
-
50
- def clamp_params(self, params: Params) -> Params:
51
- raise NotImplementedError
52
-
53
- def __repr__(self):
54
- args = ', '.join(f'{k}={str(v)[:10]}' for k, v in vars(self).items())
55
- return f'{self.__class__.__name__}({args})'
1
+ from torch import Tensor
2
+
3
+ from reflectorch.data_generation.priors.params import Params
4
+
5
+ __all__ = [
6
+ "PriorSampler",
7
+ ]
8
+
9
+
10
+ class PriorSampler(object):
11
+ """Base class for prior samplers"""
12
+
13
+ PARAM_CLS = Params
14
+
15
+ @property
16
+ def param_dim(self) -> int:
17
+ """gets the number of parameters (i.e. the parameter dimensionality)"""
18
+ return self.PARAM_CLS.layers_num2size(self.max_num_layers)
19
+
20
+ @property
21
+ def max_num_layers(self) -> int:
22
+ """gets the number of layers"""
23
+ raise NotImplementedError
24
+
25
+ def sample(self, batch_size: int) -> Params:
26
+ """sample a batch of parameters"""
27
+ raise NotImplementedError
28
+
29
+ def scale_params(self, params: Params) -> Tensor:
30
+ """scale the parameters to a ML-friendly range"""
31
+ raise NotImplementedError
32
+
33
+ def restore_params(self, scaled_params: Tensor) -> Params:
34
+ """restore the parameters to their original range"""
35
+ raise NotImplementedError
36
+
37
+ def log_prob(self, params: Params) -> Tensor:
38
+ raise NotImplementedError
39
+
40
+ def get_indices_within_domain(self, params: Params) -> Tensor:
41
+ raise NotImplementedError
42
+
43
+ def get_indices_within_bounds(self, params: Params) -> Tensor:
44
+ raise NotImplementedError
45
+
46
+ def filter_params(self, params: Params) -> Params:
47
+ indices = self.get_indices_within_domain(params)
48
+ return params[indices]
49
+
50
+ def clamp_params(self, params: Params) -> Params:
51
+ raise NotImplementedError
52
+
53
+ def __repr__(self):
54
+ args = ', '.join(f'{k}={str(v)[:10]}' for k, v in vars(self).items())
55
+ return f'{self.__class__.__name__}({args})'