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.
- reflectorch/__init__.py +17 -17
- reflectorch/data_generation/__init__.py +128 -126
- reflectorch/data_generation/dataset.py +210 -210
- reflectorch/data_generation/likelihoods.py +80 -80
- reflectorch/data_generation/noise.py +470 -470
- reflectorch/data_generation/priors/__init__.py +60 -60
- reflectorch/data_generation/priors/base.py +55 -55
- reflectorch/data_generation/priors/exp_subprior_sampler.py +298 -298
- reflectorch/data_generation/priors/independent_priors.py +195 -195
- reflectorch/data_generation/priors/multilayer_models.py +311 -311
- reflectorch/data_generation/priors/multilayer_structures.py +104 -104
- reflectorch/data_generation/priors/no_constraints.py +206 -206
- reflectorch/data_generation/priors/parametric_models.py +841 -841
- reflectorch/data_generation/priors/parametric_subpriors.py +369 -369
- reflectorch/data_generation/priors/params.py +252 -252
- reflectorch/data_generation/priors/sampler_strategies.py +369 -369
- reflectorch/data_generation/priors/scaler_mixin.py +65 -65
- reflectorch/data_generation/priors/subprior_sampler.py +371 -371
- reflectorch/data_generation/priors/utils.py +118 -118
- reflectorch/data_generation/process_data.py +41 -41
- reflectorch/data_generation/q_generator.py +280 -246
- reflectorch/data_generation/reflectivity/__init__.py +102 -102
- reflectorch/data_generation/reflectivity/abeles.py +97 -97
- reflectorch/data_generation/reflectivity/kinematical.py +70 -70
- reflectorch/data_generation/reflectivity/memory_eff.py +105 -105
- reflectorch/data_generation/reflectivity/numpy_implementations.py +120 -120
- reflectorch/data_generation/reflectivity/smearing.py +138 -138
- reflectorch/data_generation/reflectivity/smearing_pointwise.py +109 -109
- reflectorch/data_generation/scale_curves.py +112 -112
- reflectorch/data_generation/smearing.py +98 -98
- reflectorch/data_generation/utils.py +223 -222
- reflectorch/extensions/jupyter/__init__.py +11 -6
- reflectorch/extensions/jupyter/api.py +85 -0
- reflectorch/extensions/jupyter/callbacks.py +34 -34
- reflectorch/extensions/jupyter/components.py +758 -0
- reflectorch/extensions/jupyter/custom_select.py +268 -0
- reflectorch/extensions/jupyter/log_widget.py +241 -0
- reflectorch/extensions/jupyter/model_selection.py +495 -0
- reflectorch/extensions/jupyter/plotly_plot_manager.py +329 -0
- reflectorch/extensions/jupyter/widget.py +625 -0
- reflectorch/extensions/matplotlib/__init__.py +5 -5
- reflectorch/extensions/matplotlib/losses.py +32 -32
- reflectorch/extensions/refnx/refnx_conversion.py +76 -76
- reflectorch/inference/__init__.py +28 -24
- reflectorch/inference/inference_model.py +847 -851
- reflectorch/inference/input_interface.py +239 -0
- reflectorch/inference/loading_data.py +37 -0
- reflectorch/inference/multilayer_fitter.py +171 -171
- reflectorch/inference/multilayer_inference_model.py +193 -193
- reflectorch/inference/plotting.py +524 -98
- reflectorch/inference/preprocess_exp/__init__.py +6 -6
- reflectorch/inference/preprocess_exp/attenuation.py +36 -36
- reflectorch/inference/preprocess_exp/cut_with_q_ratio.py +31 -31
- reflectorch/inference/preprocess_exp/footprint.py +81 -81
- reflectorch/inference/preprocess_exp/interpolation.py +19 -16
- reflectorch/inference/preprocess_exp/normalize.py +21 -21
- reflectorch/inference/preprocess_exp/preprocess.py +121 -121
- reflectorch/inference/query_matcher.py +81 -81
- reflectorch/inference/record_time.py +43 -43
- reflectorch/inference/sampler_solution.py +56 -56
- reflectorch/inference/scipy_fitter.py +272 -248
- reflectorch/inference/torch_fitter.py +87 -87
- reflectorch/ml/__init__.py +32 -32
- reflectorch/ml/basic_trainer.py +292 -292
- reflectorch/ml/callbacks.py +80 -80
- reflectorch/ml/dataloaders.py +26 -26
- reflectorch/ml/loggers.py +55 -55
- reflectorch/ml/schedulers.py +355 -355
- reflectorch/ml/trainers.py +200 -191
- reflectorch/ml/utils.py +2 -2
- reflectorch/models/__init__.py +15 -14
- reflectorch/models/activations.py +50 -50
- reflectorch/models/encoders/__init__.py +19 -17
- reflectorch/models/encoders/conv_encoder.py +218 -218
- reflectorch/models/encoders/conv_res_net.py +115 -115
- reflectorch/models/encoders/fno.py +133 -133
- reflectorch/models/encoders/integral_kernel_embedding.py +390 -0
- reflectorch/models/networks/__init__.py +14 -14
- reflectorch/models/networks/mlp_networks.py +434 -428
- reflectorch/models/networks/residual_net.py +156 -156
- reflectorch/paths.py +29 -27
- reflectorch/runs/__init__.py +31 -31
- reflectorch/runs/config.py +25 -25
- reflectorch/runs/slurm_utils.py +93 -93
- reflectorch/runs/train.py +78 -78
- reflectorch/runs/utils.py +404 -401
- reflectorch/test_config.py +4 -4
- reflectorch/train.py +4 -4
- reflectorch/train_on_cluster.py +4 -4
- reflectorch/utils.py +98 -68
- {reflectorch-1.3.0.dist-info → reflectorch-1.5.0.dist-info}/METADATA +129 -125
- reflectorch-1.5.0.dist-info/RECORD +96 -0
- {reflectorch-1.3.0.dist-info → reflectorch-1.5.0.dist-info}/WHEEL +1 -1
- {reflectorch-1.3.0.dist-info → reflectorch-1.5.0.dist-info}/licenses/LICENSE.txt +20 -20
- reflectorch-1.3.0.dist-info/RECORD +0 -86
- {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})'
|