reflectorch 1.0.0__tar.gz → 1.1.0__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 reflectorch might be problematic. Click here for more details.

Files changed (519) hide show
  1. reflectorch-1.1.0/.github/workflows/draft-pdf.yml +24 -0
  2. reflectorch-1.1.0/LICENSE.txt +21 -0
  3. reflectorch-1.1.0/MANIFEST.in +13 -0
  4. {reflectorch-1.0.0 → reflectorch-1.1.0}/PKG-INFO +22 -15
  5. reflectorch-1.1.0/README.md +83 -0
  6. reflectorch-1.1.0/configs/c_test_safetensors.yaml +103 -0
  7. {reflectorch-1.0.0 → reflectorch-1.1.0}/pyproject.toml +2 -2
  8. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/sampler_strategies.py +1 -1
  9. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/__init__.py +2 -0
  10. reflectorch-1.1.0/reflectorch/inference/query_matcher.py +82 -0
  11. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/runs/utils.py +6 -7
  12. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch.egg-info/PKG-INFO +22 -15
  13. reflectorch-1.1.0/reflectorch.egg-info/SOURCES.txt +258 -0
  14. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch.egg-info/requires.txt +0 -1
  15. reflectorch-1.1.0/tests/fixtures/__init__.py +8 -0
  16. {reflectorch-1.0.0 → reflectorch-1.1.0}/tests/fixtures/data.py +1 -19
  17. reflectorch-1.1.0/tests/unit/test_dataloader.py +69 -0
  18. reflectorch-1.1.0/tests/unit/test_embedding_networks.py +46 -0
  19. reflectorch-1.1.0/tests/unit/test_mlp.py +34 -0
  20. reflectorch-1.1.0/tests/unit/test_prior_sampler.py +63 -0
  21. reflectorch-1.1.0/tests/unit/test_q_generator.py +25 -0
  22. reflectorch-1.1.0/tests/unit/test_reflectivity.py +123 -0
  23. reflectorch-1.0.0/LICENSE.txt +0 -621
  24. reflectorch-1.0.0/MANIFEST.in +0 -4
  25. reflectorch-1.0.0/README.md +0 -75
  26. reflectorch-1.0.0/docs/.buildinfo +0 -4
  27. reflectorch-1.0.0/docs/.nojekyll +0 -0
  28. reflectorch-1.0.0/docs/_images/099e7c02597f512ca4bf329e5e70eabf2526b801bc2e41a4b60faf1fd2a0d5b1.png +0 -0
  29. reflectorch-1.0.0/docs/_images/1ac30c6dc424753591b75155c55218b97af8a9d4f39ba1f550e3726b99a8c203.png +0 -0
  30. reflectorch-1.0.0/docs/_images/3032465085654ffdb6867123c628f2cf254e999fbed6a3e83f086fbefff32f60.png +0 -0
  31. reflectorch-1.0.0/docs/_images/462e9fd6dbc00234aca3b1cae4463c91412d09f837f308179bec64ac6c0e2131.png +0 -0
  32. reflectorch-1.0.0/docs/_images/4d27eb91adf7ec25746b09811fb942ba4f3cbf658a3863b2c2187d81b8cbcf01.png +0 -0
  33. reflectorch-1.0.0/docs/_images/51d11b6255a573c0f8781fe74c1711151fbc2bc20db8ad460609c5fd5fcba04f.png +0 -0
  34. reflectorch-1.0.0/docs/_images/570b83780084f56a287d652d7580aa1858691a18cbc5cab9ceb4a7444baa0090.png +0 -0
  35. reflectorch-1.0.0/docs/_images/5a15129c3f2683e9a278d594c69424c4a81058c3f8d86a555ff3efd8e2343a0b.png +0 -0
  36. reflectorch-1.0.0/docs/_images/69d7c263b51df1bddc93a007ae2fecfd0545cf92af67c8882a0df8552576fa66.png +0 -0
  37. reflectorch-1.0.0/docs/_images/96a843c24bb16816e4ec21c2b6b5c481326b522c884f1655ff3105627ceabe0d.png +0 -0
  38. reflectorch-1.0.0/docs/_images/97a75e185ec40a99a279ded3b8e62245aa03f9f8d10d001217300c9383d0d765.png +0 -0
  39. reflectorch-1.0.0/docs/_images/FigureReflectometryNetwork.png +0 -0
  40. reflectorch-1.0.0/docs/_images/FigureReflectometryNetwork1.png +0 -0
  41. reflectorch-1.0.0/docs/_images/a4da539228f5cd6bedde145b371d42caf707eac2a4a9b6574589593efd850d6b.png +0 -0
  42. reflectorch-1.0.0/docs/_images/a8216c88102285c58af52732aad1a43ad5d47aa8b2d194ec59cf6475ab1575b9.png +0 -0
  43. reflectorch-1.0.0/docs/_images/c6ab9d1f271ac67ea566420b728be4083f1687e08889123058c64db9c0e61210.png +0 -0
  44. reflectorch-1.0.0/docs/_images/d06c461edbc6816f6bfffbb91ede2b62e2e5bce5bd1b258a1f77c64beb4203be.png +0 -0
  45. reflectorch-1.0.0/docs/_images/d0c0eef87034c8193308e5448c4cc7ca570131a67e594a3341a87be7df0c92c8.png +0 -0
  46. reflectorch-1.0.0/docs/_images/df92d9cc76ed41a7fe7e0782cb88350e1f3561df2a8e3eefb21b9837ec23ac41.png +0 -0
  47. reflectorch-1.0.0/docs/_images/e3c28ca591b3b7551f82ca4aa1c2bbbd7f8001fb3383fa3e47139ac76903cc79.png +0 -0
  48. reflectorch-1.0.0/docs/_images/f804fe4cf583d38dfe1719a535dd91976693adb6889bccb26ba3ba0e0fb1e647.png +0 -0
  49. reflectorch-1.0.0/docs/_images/fig_reflectometry_embedding_networks.png +0 -0
  50. reflectorch-1.0.0/docs/_images/fig_reflectometry_embedding_networks1.png +0 -0
  51. reflectorch-1.0.0/docs/_images/jupyter_widget_reflectorch.png +0 -0
  52. reflectorch-1.0.0/docs/_images/sketch_multilayer_0.png +0 -0
  53. reflectorch-1.0.0/docs/_modules/index.html +0 -405
  54. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/dataset.html +0 -579
  55. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/likelihoods.html +0 -472
  56. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/noise.html +0 -775
  57. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/priors/base.html +0 -447
  58. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/priors/parametric_models.html +0 -1156
  59. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/priors/parametric_subpriors.html +0 -758
  60. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/priors/params.html +0 -656
  61. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/priors/sampler_strategies.html +0 -701
  62. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/priors/subprior_sampler.html +0 -781
  63. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/q_generator.html +0 -630
  64. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/reflectivity.html +0 -433
  65. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/scale_curves.html +0 -516
  66. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/smearing.html +0 -444
  67. reflectorch-1.0.0/docs/_modules/reflectorch/data_generation/utils.html +0 -531
  68. reflectorch-1.0.0/docs/_modules/reflectorch/inference/inference_model.html +0 -1120
  69. reflectorch-1.0.0/docs/_modules/reflectorch/inference/preprocess_exp/attenuation.html +0 -413
  70. reflectorch-1.0.0/docs/_modules/reflectorch/inference/preprocess_exp/footprint.html +0 -458
  71. reflectorch-1.0.0/docs/_modules/reflectorch/inference/preprocess_exp/interpolation.html +0 -393
  72. reflectorch-1.0.0/docs/_modules/reflectorch/inference/preprocess_exp/preprocess.html +0 -498
  73. reflectorch-1.0.0/docs/_modules/reflectorch/inference/torch_fitter.html +0 -467
  74. reflectorch-1.0.0/docs/_modules/reflectorch/ml/basic_trainer.html +0 -696
  75. reflectorch-1.0.0/docs/_modules/reflectorch/ml/callbacks.html +0 -475
  76. reflectorch-1.0.0/docs/_modules/reflectorch/ml/dataloaders.html +0 -404
  77. reflectorch-1.0.0/docs/_modules/reflectorch/ml/loggers.html +0 -421
  78. reflectorch-1.0.0/docs/_modules/reflectorch/ml/schedulers.html +0 -656
  79. reflectorch-1.0.0/docs/_modules/reflectorch/ml/trainers.html +0 -515
  80. reflectorch-1.0.0/docs/_modules/reflectorch/models/encoders/conv_encoder.html +0 -588
  81. reflectorch-1.0.0/docs/_modules/reflectorch/models/encoders/conv_fc_encoder.html +0 -818
  82. reflectorch-1.0.0/docs/_modules/reflectorch/models/encoders/fno.html +0 -504
  83. reflectorch-1.0.0/docs/_modules/reflectorch/models/networks/mlp_networks.html +0 -642
  84. reflectorch-1.0.0/docs/_modules/reflectorch/runs/config.html +0 -408
  85. reflectorch-1.0.0/docs/_modules/reflectorch/runs/utils.html +0 -689
  86. reflectorch-1.0.0/docs/_modules/reflectorch/utils.html +0 -466
  87. reflectorch-1.0.0/docs/_sources/advanced_functionality.ipynb +0 -1402
  88. reflectorch-1.0.0/docs/_sources/api.rst +0 -76
  89. reflectorch-1.0.0/docs/_sources/installation.ipynb +0 -155
  90. reflectorch-1.0.0/docs/_sources/intro.md +0 -37
  91. reflectorch-1.0.0/docs/_sources/training_reflectorch.ipynb +0 -942
  92. reflectorch-1.0.0/docs/_sources/using_reflectorch.ipynb +0 -1135
  93. reflectorch-1.0.0/docs/_sphinx_design_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css +0 -1
  94. reflectorch-1.0.0/docs/_sphinx_design_static/design-tabs.js +0 -27
  95. reflectorch-1.0.0/docs/_static/basic.css +0 -925
  96. reflectorch-1.0.0/docs/_static/check-solid.svg +0 -4
  97. reflectorch-1.0.0/docs/_static/clipboard.min.js +0 -7
  98. reflectorch-1.0.0/docs/_static/copy-button.svg +0 -5
  99. reflectorch-1.0.0/docs/_static/copybutton.css +0 -94
  100. reflectorch-1.0.0/docs/_static/copybutton.js +0 -248
  101. reflectorch-1.0.0/docs/_static/copybutton_funcs.js +0 -73
  102. reflectorch-1.0.0/docs/_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css +0 -1
  103. reflectorch-1.0.0/docs/_static/design-tabs.js +0 -27
  104. reflectorch-1.0.0/docs/_static/doctools.js +0 -156
  105. reflectorch-1.0.0/docs/_static/documentation_options.js +0 -13
  106. reflectorch-1.0.0/docs/_static/file.png +0 -0
  107. reflectorch-1.0.0/docs/_static/images/logo_binder.svg +0 -19
  108. reflectorch-1.0.0/docs/_static/images/logo_colab.png +0 -0
  109. reflectorch-1.0.0/docs/_static/images/logo_deepnote.svg +0 -1
  110. reflectorch-1.0.0/docs/_static/images/logo_jupyterhub.svg +0 -1
  111. reflectorch-1.0.0/docs/_static/language_data.js +0 -199
  112. reflectorch-1.0.0/docs/_static/locales/ar/LC_MESSAGES/booktheme.mo +0 -0
  113. reflectorch-1.0.0/docs/_static/locales/ar/LC_MESSAGES/booktheme.po +0 -75
  114. reflectorch-1.0.0/docs/_static/locales/bg/LC_MESSAGES/booktheme.mo +0 -0
  115. reflectorch-1.0.0/docs/_static/locales/bg/LC_MESSAGES/booktheme.po +0 -75
  116. reflectorch-1.0.0/docs/_static/locales/bn/LC_MESSAGES/booktheme.mo +0 -0
  117. reflectorch-1.0.0/docs/_static/locales/bn/LC_MESSAGES/booktheme.po +0 -63
  118. reflectorch-1.0.0/docs/_static/locales/ca/LC_MESSAGES/booktheme.mo +0 -0
  119. reflectorch-1.0.0/docs/_static/locales/ca/LC_MESSAGES/booktheme.po +0 -66
  120. reflectorch-1.0.0/docs/_static/locales/cs/LC_MESSAGES/booktheme.mo +0 -0
  121. reflectorch-1.0.0/docs/_static/locales/cs/LC_MESSAGES/booktheme.po +0 -75
  122. reflectorch-1.0.0/docs/_static/locales/da/LC_MESSAGES/booktheme.mo +0 -0
  123. reflectorch-1.0.0/docs/_static/locales/da/LC_MESSAGES/booktheme.po +0 -75
  124. reflectorch-1.0.0/docs/_static/locales/de/LC_MESSAGES/booktheme.mo +0 -0
  125. reflectorch-1.0.0/docs/_static/locales/de/LC_MESSAGES/booktheme.po +0 -75
  126. reflectorch-1.0.0/docs/_static/locales/el/LC_MESSAGES/booktheme.mo +0 -0
  127. reflectorch-1.0.0/docs/_static/locales/el/LC_MESSAGES/booktheme.po +0 -75
  128. reflectorch-1.0.0/docs/_static/locales/eo/LC_MESSAGES/booktheme.mo +0 -0
  129. reflectorch-1.0.0/docs/_static/locales/eo/LC_MESSAGES/booktheme.po +0 -75
  130. reflectorch-1.0.0/docs/_static/locales/es/LC_MESSAGES/booktheme.mo +0 -0
  131. reflectorch-1.0.0/docs/_static/locales/es/LC_MESSAGES/booktheme.po +0 -75
  132. reflectorch-1.0.0/docs/_static/locales/et/LC_MESSAGES/booktheme.mo +0 -0
  133. reflectorch-1.0.0/docs/_static/locales/et/LC_MESSAGES/booktheme.po +0 -75
  134. reflectorch-1.0.0/docs/_static/locales/fi/LC_MESSAGES/booktheme.mo +0 -0
  135. reflectorch-1.0.0/docs/_static/locales/fi/LC_MESSAGES/booktheme.po +0 -75
  136. reflectorch-1.0.0/docs/_static/locales/fr/LC_MESSAGES/booktheme.mo +0 -0
  137. reflectorch-1.0.0/docs/_static/locales/fr/LC_MESSAGES/booktheme.po +0 -75
  138. reflectorch-1.0.0/docs/_static/locales/hr/LC_MESSAGES/booktheme.mo +0 -0
  139. reflectorch-1.0.0/docs/_static/locales/hr/LC_MESSAGES/booktheme.po +0 -75
  140. reflectorch-1.0.0/docs/_static/locales/id/LC_MESSAGES/booktheme.mo +0 -0
  141. reflectorch-1.0.0/docs/_static/locales/id/LC_MESSAGES/booktheme.po +0 -75
  142. reflectorch-1.0.0/docs/_static/locales/it/LC_MESSAGES/booktheme.mo +0 -0
  143. reflectorch-1.0.0/docs/_static/locales/it/LC_MESSAGES/booktheme.po +0 -75
  144. reflectorch-1.0.0/docs/_static/locales/iw/LC_MESSAGES/booktheme.mo +0 -0
  145. reflectorch-1.0.0/docs/_static/locales/iw/LC_MESSAGES/booktheme.po +0 -75
  146. reflectorch-1.0.0/docs/_static/locales/ja/LC_MESSAGES/booktheme.mo +0 -0
  147. reflectorch-1.0.0/docs/_static/locales/ja/LC_MESSAGES/booktheme.po +0 -75
  148. reflectorch-1.0.0/docs/_static/locales/ko/LC_MESSAGES/booktheme.mo +0 -0
  149. reflectorch-1.0.0/docs/_static/locales/ko/LC_MESSAGES/booktheme.po +0 -75
  150. reflectorch-1.0.0/docs/_static/locales/lt/LC_MESSAGES/booktheme.mo +0 -0
  151. reflectorch-1.0.0/docs/_static/locales/lt/LC_MESSAGES/booktheme.po +0 -75
  152. reflectorch-1.0.0/docs/_static/locales/lv/LC_MESSAGES/booktheme.mo +0 -0
  153. reflectorch-1.0.0/docs/_static/locales/lv/LC_MESSAGES/booktheme.po +0 -75
  154. reflectorch-1.0.0/docs/_static/locales/ml/LC_MESSAGES/booktheme.mo +0 -0
  155. reflectorch-1.0.0/docs/_static/locales/ml/LC_MESSAGES/booktheme.po +0 -66
  156. reflectorch-1.0.0/docs/_static/locales/mr/LC_MESSAGES/booktheme.mo +0 -0
  157. reflectorch-1.0.0/docs/_static/locales/mr/LC_MESSAGES/booktheme.po +0 -66
  158. reflectorch-1.0.0/docs/_static/locales/ms/LC_MESSAGES/booktheme.mo +0 -0
  159. reflectorch-1.0.0/docs/_static/locales/ms/LC_MESSAGES/booktheme.po +0 -66
  160. reflectorch-1.0.0/docs/_static/locales/nl/LC_MESSAGES/booktheme.mo +0 -0
  161. reflectorch-1.0.0/docs/_static/locales/nl/LC_MESSAGES/booktheme.po +0 -75
  162. reflectorch-1.0.0/docs/_static/locales/no/LC_MESSAGES/booktheme.mo +0 -0
  163. reflectorch-1.0.0/docs/_static/locales/no/LC_MESSAGES/booktheme.po +0 -75
  164. reflectorch-1.0.0/docs/_static/locales/pl/LC_MESSAGES/booktheme.mo +0 -0
  165. reflectorch-1.0.0/docs/_static/locales/pl/LC_MESSAGES/booktheme.po +0 -75
  166. reflectorch-1.0.0/docs/_static/locales/pt/LC_MESSAGES/booktheme.mo +0 -0
  167. reflectorch-1.0.0/docs/_static/locales/pt/LC_MESSAGES/booktheme.po +0 -75
  168. reflectorch-1.0.0/docs/_static/locales/ro/LC_MESSAGES/booktheme.mo +0 -0
  169. reflectorch-1.0.0/docs/_static/locales/ro/LC_MESSAGES/booktheme.po +0 -75
  170. reflectorch-1.0.0/docs/_static/locales/ru/LC_MESSAGES/booktheme.mo +0 -0
  171. reflectorch-1.0.0/docs/_static/locales/ru/LC_MESSAGES/booktheme.po +0 -75
  172. reflectorch-1.0.0/docs/_static/locales/sk/LC_MESSAGES/booktheme.mo +0 -0
  173. reflectorch-1.0.0/docs/_static/locales/sk/LC_MESSAGES/booktheme.po +0 -75
  174. reflectorch-1.0.0/docs/_static/locales/sl/LC_MESSAGES/booktheme.mo +0 -0
  175. reflectorch-1.0.0/docs/_static/locales/sl/LC_MESSAGES/booktheme.po +0 -75
  176. reflectorch-1.0.0/docs/_static/locales/sr/LC_MESSAGES/booktheme.mo +0 -0
  177. reflectorch-1.0.0/docs/_static/locales/sr/LC_MESSAGES/booktheme.po +0 -75
  178. reflectorch-1.0.0/docs/_static/locales/sv/LC_MESSAGES/booktheme.mo +0 -0
  179. reflectorch-1.0.0/docs/_static/locales/sv/LC_MESSAGES/booktheme.po +0 -75
  180. reflectorch-1.0.0/docs/_static/locales/ta/LC_MESSAGES/booktheme.mo +0 -0
  181. reflectorch-1.0.0/docs/_static/locales/ta/LC_MESSAGES/booktheme.po +0 -66
  182. reflectorch-1.0.0/docs/_static/locales/te/LC_MESSAGES/booktheme.mo +0 -0
  183. reflectorch-1.0.0/docs/_static/locales/te/LC_MESSAGES/booktheme.po +0 -66
  184. reflectorch-1.0.0/docs/_static/locales/tg/LC_MESSAGES/booktheme.mo +0 -0
  185. reflectorch-1.0.0/docs/_static/locales/tg/LC_MESSAGES/booktheme.po +0 -75
  186. reflectorch-1.0.0/docs/_static/locales/th/LC_MESSAGES/booktheme.mo +0 -0
  187. reflectorch-1.0.0/docs/_static/locales/th/LC_MESSAGES/booktheme.po +0 -75
  188. reflectorch-1.0.0/docs/_static/locales/tl/LC_MESSAGES/booktheme.mo +0 -0
  189. reflectorch-1.0.0/docs/_static/locales/tl/LC_MESSAGES/booktheme.po +0 -66
  190. reflectorch-1.0.0/docs/_static/locales/tr/LC_MESSAGES/booktheme.mo +0 -0
  191. reflectorch-1.0.0/docs/_static/locales/tr/LC_MESSAGES/booktheme.po +0 -75
  192. reflectorch-1.0.0/docs/_static/locales/uk/LC_MESSAGES/booktheme.mo +0 -0
  193. reflectorch-1.0.0/docs/_static/locales/uk/LC_MESSAGES/booktheme.po +0 -75
  194. reflectorch-1.0.0/docs/_static/locales/ur/LC_MESSAGES/booktheme.mo +0 -0
  195. reflectorch-1.0.0/docs/_static/locales/ur/LC_MESSAGES/booktheme.po +0 -66
  196. reflectorch-1.0.0/docs/_static/locales/vi/LC_MESSAGES/booktheme.mo +0 -0
  197. reflectorch-1.0.0/docs/_static/locales/vi/LC_MESSAGES/booktheme.po +0 -75
  198. reflectorch-1.0.0/docs/_static/locales/zh_CN/LC_MESSAGES/booktheme.mo +0 -0
  199. reflectorch-1.0.0/docs/_static/locales/zh_CN/LC_MESSAGES/booktheme.po +0 -75
  200. reflectorch-1.0.0/docs/_static/locales/zh_TW/LC_MESSAGES/booktheme.mo +0 -0
  201. reflectorch-1.0.0/docs/_static/locales/zh_TW/LC_MESSAGES/booktheme.po +0 -75
  202. reflectorch-1.0.0/docs/_static/minus.png +0 -0
  203. reflectorch-1.0.0/docs/_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css +0 -2342
  204. reflectorch-1.0.0/docs/_static/play-solid.svg +0 -1
  205. reflectorch-1.0.0/docs/_static/plus.png +0 -0
  206. reflectorch-1.0.0/docs/_static/pygments.css +0 -152
  207. reflectorch-1.0.0/docs/_static/reflectorch_logo.png +0 -0
  208. reflectorch-1.0.0/docs/_static/sbt-webpack-macros.html +0 -11
  209. reflectorch-1.0.0/docs/_static/scripts/bootstrap.js +0 -3
  210. reflectorch-1.0.0/docs/_static/scripts/bootstrap.js.LICENSE.txt +0 -5
  211. reflectorch-1.0.0/docs/_static/scripts/bootstrap.js.map +0 -1
  212. reflectorch-1.0.0/docs/_static/scripts/pydata-sphinx-theme.js +0 -2
  213. reflectorch-1.0.0/docs/_static/scripts/pydata-sphinx-theme.js.map +0 -1
  214. reflectorch-1.0.0/docs/_static/scripts/sphinx-book-theme.js +0 -2
  215. reflectorch-1.0.0/docs/_static/scripts/sphinx-book-theme.js.map +0 -1
  216. reflectorch-1.0.0/docs/_static/searchtools.js +0 -574
  217. reflectorch-1.0.0/docs/_static/sphinx-thebe.css +0 -129
  218. reflectorch-1.0.0/docs/_static/sphinx-thebe.js +0 -127
  219. reflectorch-1.0.0/docs/_static/sphinx_highlight.js +0 -154
  220. reflectorch-1.0.0/docs/_static/styles/bootstrap.css +0 -6
  221. reflectorch-1.0.0/docs/_static/styles/bootstrap.css.map +0 -1
  222. reflectorch-1.0.0/docs/_static/styles/pydata-sphinx-theme.css +0 -2
  223. reflectorch-1.0.0/docs/_static/styles/pydata-sphinx-theme.css.map +0 -1
  224. reflectorch-1.0.0/docs/_static/styles/sphinx-book-theme.css +0 -8
  225. reflectorch-1.0.0/docs/_static/styles/theme.css +0 -2
  226. reflectorch-1.0.0/docs/_static/togglebutton.css +0 -160
  227. reflectorch-1.0.0/docs/_static/togglebutton.js +0 -187
  228. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/LICENSE.txt +0 -165
  229. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/css/all.min.css +0 -5
  230. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/js/all.min.js +0 -2
  231. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/js/all.min.js.LICENSE.txt +0 -5
  232. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.ttf +0 -0
  233. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.woff2 +0 -0
  234. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.ttf +0 -0
  235. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.woff2 +0 -0
  236. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.ttf +0 -0
  237. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.woff2 +0 -0
  238. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/webfonts/fa-v4compatibility.ttf +0 -0
  239. reflectorch-1.0.0/docs/_static/vendor/fontawesome/6.5.1/webfonts/fa-v4compatibility.woff2 +0 -0
  240. reflectorch-1.0.0/docs/_static/webpack-macros.html +0 -31
  241. reflectorch-1.0.0/docs/advanced_functionality.html +0 -1513
  242. reflectorch-1.0.0/docs/api.html +0 -2993
  243. reflectorch-1.0.0/docs/genindex.html +0 -905
  244. reflectorch-1.0.0/docs/index.html +0 -1
  245. reflectorch-1.0.0/docs/installation.html +0 -561
  246. reflectorch-1.0.0/docs/intro.html +0 -517
  247. reflectorch-1.0.0/docs/objects.inv +0 -0
  248. reflectorch-1.0.0/docs/py-modindex.html +0 -397
  249. reflectorch-1.0.0/docs/reports/advanced_functionality.err.log +0 -28
  250. reflectorch-1.0.0/docs/reports/training_reflectorch.err.log +0 -49
  251. reflectorch-1.0.0/docs/reports/using_reflectorch.err.log +0 -65
  252. reflectorch-1.0.0/docs/search.html +0 -391
  253. reflectorch-1.0.0/docs/searchindex.js +0 -1
  254. reflectorch-1.0.0/docs/training_reflectorch.html +0 -1109
  255. reflectorch-1.0.0/docs/using_reflectorch.html +0 -1171
  256. reflectorch-1.0.0/documentation/FigureReflectometryNetwork.png +0 -0
  257. reflectorch-1.0.0/documentation/_config.yml +0 -59
  258. reflectorch-1.0.0/documentation/_toc.yml +0 -13
  259. reflectorch-1.0.0/documentation/advanced_functionality.ipynb +0 -1402
  260. reflectorch-1.0.0/documentation/api.rst +0 -76
  261. reflectorch-1.0.0/documentation/conf.py +0 -35
  262. reflectorch-1.0.0/documentation/fig_reflectometry_embedding_networks.png +0 -0
  263. reflectorch-1.0.0/documentation/installation.ipynb +0 -155
  264. reflectorch-1.0.0/documentation/intro.md +0 -37
  265. reflectorch-1.0.0/documentation/jupyter_widget_reflectorch.png +0 -0
  266. reflectorch-1.0.0/documentation/reflectorch_logo.png +0 -0
  267. reflectorch-1.0.0/documentation/requirements.txt +0 -4
  268. reflectorch-1.0.0/documentation/sketch_multilayer_0.png +0 -0
  269. reflectorch-1.0.0/documentation/training_reflectorch.ipynb +0 -942
  270. reflectorch-1.0.0/documentation/using_reflectorch.ipynb +0 -1135
  271. reflectorch-1.0.0/paper/docker_build_command.txt +0 -2
  272. reflectorch-1.0.0/paper/paper.bib +0 -109
  273. reflectorch-1.0.0/paper/paper.md +0 -114
  274. reflectorch-1.0.0/reflectorch.egg-info/SOURCES.txt +0 -503
  275. reflectorch-1.0.0/tests/data/test_preprocessed_curve_1.npz +0 -0
  276. reflectorch-1.0.0/tests/fixtures/__init__.py +0 -15
  277. reflectorch-1.0.0/tests/fixtures/models.py +0 -15
  278. reflectorch-1.0.0/tests/func/test_model.py +0 -18
  279. reflectorch-1.0.0/tests/helpers/__init__.py +0 -0
  280. reflectorch-1.0.0/tests/helpers/generate_data.py +0 -28
  281. reflectorch-1.0.0/tests/unit/__init__.py +0 -0
  282. {reflectorch-1.0.0 → reflectorch-1.1.0}/.dockerignore +0 -0
  283. {reflectorch-1.0.0 → reflectorch-1.1.0}/.github/workflows/ci.yml +0 -0
  284. {reflectorch-1.0.0 → reflectorch-1.1.0}/.gitignore +0 -0
  285. {reflectorch-1.0.0 → reflectorch-1.1.0}/CODE_OF_CONDUCT.md +0 -0
  286. {reflectorch-1.0.0 → reflectorch-1.1.0}/Dockerfile +0 -0
  287. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c1.yaml +0 -0
  288. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c1_trained.yaml +0 -0
  289. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_L10_d100_s150_r30_ws5_q03_nq256.yaml +0 -0
  290. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_L3_d200_s150_r60_ws5_q03_nq128.yaml +0 -0
  291. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_L5_d200_s150_r60_ws5_q03_nq256.yaml +0 -0
  292. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_absorption.yaml +0 -0
  293. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_absorption_L2_d500_s150_is30_r60_ws5_q03_nq256.yaml +0 -0
  294. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_absorption_L5_d200_s150_is30_r60_ws5_q03_nq256.yaml +0 -0
  295. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_ae.yaml +0 -0
  296. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_fno.yaml +0 -0
  297. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_model_with_shifts.yaml +0 -0
  298. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_repeating_multilayer.yaml +0 -0
  299. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/c_repeating_multilayer_trained1.yaml +0 -0
  300. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q109_exp_1.yaml +0 -0
  301. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q256_absorption_1.yaml +0 -0
  302. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q256_exp_2.yaml +0 -0
  303. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q256_exp_3.yaml +0 -0
  304. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q256_exp_3_02.yaml +0 -0
  305. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q256_exp_4.yaml +0 -0
  306. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q256_exp_5.yaml +0 -0
  307. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q256_exp_sm_2.yaml +0 -0
  308. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q256_new_1.yaml +0 -0
  309. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l2q64_new_sub_1.yaml +0 -0
  310. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/l5q256_new_sub_1.yaml +0 -0
  311. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o1.yaml +0 -0
  312. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o10.yaml +0 -0
  313. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o11.yaml +0 -0
  314. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o12.yaml +0 -0
  315. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o13.yaml +0 -0
  316. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o14.yaml +0 -0
  317. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o15.yaml +0 -0
  318. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o16.yaml +0 -0
  319. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o2.yaml +0 -0
  320. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o3.yaml +0 -0
  321. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o4.yaml +0 -0
  322. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o5.yaml +0 -0
  323. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o7.yaml +0 -0
  324. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o8.yaml +0 -0
  325. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc-o9.yaml +0 -0
  326. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc1.yaml +0 -0
  327. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc10.yaml +0 -0
  328. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc11.yaml +0 -0
  329. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc12.yaml +0 -0
  330. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc13.yaml +0 -0
  331. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc14.yaml +0 -0
  332. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc15.yaml +0 -0
  333. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc16.yaml +0 -0
  334. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc17.yaml +0 -0
  335. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc18.yaml +0 -0
  336. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc19.yaml +0 -0
  337. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc2.yaml +0 -0
  338. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc20.yaml +0 -0
  339. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc21.yaml +0 -0
  340. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc22.yaml +0 -0
  341. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc23.yaml +0 -0
  342. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc24.yaml +0 -0
  343. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc25.yaml +0 -0
  344. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc26.yaml +0 -0
  345. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc27.yaml +0 -0
  346. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc28.yaml +0 -0
  347. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc29.yaml +0 -0
  348. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc3.yaml +0 -0
  349. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc30.yaml +0 -0
  350. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc31.yaml +0 -0
  351. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc32.yaml +0 -0
  352. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc33.yaml +0 -0
  353. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc34.yaml +0 -0
  354. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc35.yaml +0 -0
  355. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc36.yaml +0 -0
  356. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc37.yaml +0 -0
  357. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc38.yaml +0 -0
  358. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc39.yaml +0 -0
  359. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc4.yaml +0 -0
  360. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc40.yaml +0 -0
  361. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc41.yaml +0 -0
  362. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc42.yaml +0 -0
  363. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc43.yaml +0 -0
  364. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc44.yaml +0 -0
  365. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc45.yaml +0 -0
  366. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc46.yaml +0 -0
  367. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc47.yaml +0 -0
  368. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc48.yaml +0 -0
  369. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc49.yaml +0 -0
  370. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc5.yaml +0 -0
  371. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc50.yaml +0 -0
  372. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc51.yaml +0 -0
  373. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc52.yaml +0 -0
  374. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc53.yaml +0 -0
  375. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc54.yaml +0 -0
  376. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc55.yaml +0 -0
  377. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc56.yaml +0 -0
  378. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc57.yaml +0 -0
  379. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc58.yaml +0 -0
  380. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc59.yaml +0 -0
  381. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc6.yaml +0 -0
  382. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc60.yaml +0 -0
  383. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc61.yaml +0 -0
  384. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc62.yaml +0 -0
  385. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc63.yaml +0 -0
  386. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc64.yaml +0 -0
  387. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc65.yaml +0 -0
  388. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc66.yaml +0 -0
  389. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc67.yaml +0 -0
  390. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc7.yaml +0 -0
  391. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc8.yaml +0 -0
  392. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/mc9.yaml +0 -0
  393. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/multilayer_test_1.yaml +0 -0
  394. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/multilayer_test_1_1.yaml +0 -0
  395. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/multilayer_test_2.yaml +0 -0
  396. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/multilayer_test_2_2.yaml +0 -0
  397. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/multilayer_test_3.yaml +0 -0
  398. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/time_val_exp_L2_q128-015_d500_r60_s25n_bs4_budist_noise-poisson02-sh03-sc002-qs1e3-qn1e3.yaml +0 -0
  399. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/time_val_sim_L5_q256_d300_r60_s25_bs4_budist_noise-poisson02_LONGER.yaml +0 -0
  400. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_exp_L2_q128-015_d500_r60_s25n_bs4_budist_noise-poisson02-sh03-sc002-qs1e3-qn1e3.yaml +0 -0
  401. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_exp_L2_q128_d300_r60_s25_bs4_budist_noise-poisson02-various-noises.yaml +0 -0
  402. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_exp_L2_q128_d300_r60_s25_bs4_budist_noise-poisson02-various-noises2.yaml +0 -0
  403. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_exp_L2_q256_d300_r60_s25_bs4_budist_noise-poisson01.yaml +0 -0
  404. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_exp_L2_q256_d300_r60_s25_bs4_budist_noise-poisson02.yaml +0 -0
  405. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_exp_L2_q256_d300_r60_s25_bs4_budist_noise-poisson03.yaml +0 -0
  406. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_exp_L2_q64_d300_r60_s25_bs25_budist_noise-poisson03_scale002.yaml +0 -0
  407. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_exp_L2_q64_d300_r60_s25_bs4_blogdist_noise-poisson04.yaml +0 -0
  408. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_exp_L2_q64_d300_r60_s25_bs4_budist_noise-poisson04.yaml +0 -0
  409. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_multilayer_V1.yaml +0 -0
  410. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_multilayer_V2.yaml +0 -0
  411. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_FNO_L2_q256_d300_r60_s25_bs4_budist_noise-poisson02.yaml +0 -0
  412. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_FNO_L2_q256_d300_r60_s25_bs4_budist_noise-poisson02_V2.yaml +0 -0
  413. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_FNO_L2_q256_d300_r60_s25_bs4_budist_noise-poisson02_varyQ.yaml +0 -0
  414. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_FNO_L2_q64-512_015-05_d300_r60_s25_bs4_budist_noise-poisson02_varyall.yaml +0 -0
  415. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_FNO_L2_q64-512_015-05_d500_r60_s25n_bs4_budist_noise-poisson02_varyall_V2.yaml +0 -0
  416. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L2_q256_d300_r60_s25_br20_bs4_budist_noise-none.yaml +0 -0
  417. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L2_q256_d300_r60_s25_bs25_budist_noise-none.yaml +0 -0
  418. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L2_q256_d300_r60_s25_bs25_budist_noise-poisson02.yaml +0 -0
  419. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L2_q256_d300_r60_s25_bs4_blogdist_noise-poisson02.yaml +0 -0
  420. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L2_q256_d300_r60_s25_bs4_budist_noise-none.yaml +0 -0
  421. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L2_q256_d300_r60_s25_bs4_budist_noise-poisson02-hz512.yaml +0 -0
  422. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L2_q256_d300_r60_s25_bs4_budist_noise-poisson02-rb10.yaml +0 -0
  423. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L2_q256_d300_r60_s25_bs4_budist_noise-poisson02.yaml +0 -0
  424. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L3_q256_d300_r60_s25_bs25_budist_noise-poisson02.yaml +0 -0
  425. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L3_q256_d300_r60_s25_bs4_budist_noise-none.yaml +0 -0
  426. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L3_q256_d300_r60_s25_bs4_budist_noise-poisson02-TRY2.yaml +0 -0
  427. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L3_q256_d300_r60_s25_bs4_budist_noise-poisson02.yaml +0 -0
  428. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L5_q1024_d300_r60_s25_bs4_budist_noise-poisson02.yaml +0 -0
  429. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L5_q256_d300_r60_s25_bs25_budist_noise-poisson02.yaml +0 -0
  430. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L5_q256_d300_r60_s25_bs4_budist_noise-poisson02-Copy1.yaml +0 -0
  431. {reflectorch-1.0.0 → reflectorch-1.1.0}/configs/val_sim_L5_q256_d300_r60_s25_bs4_budist_noise-poisson02_LONGER.yaml +0 -0
  432. {reflectorch-1.0.0 → reflectorch-1.1.0}/debug.py +0 -0
  433. {reflectorch-1.0.0 → reflectorch-1.1.0}/exp_data/33a.dat +0 -0
  434. {reflectorch-1.0.0 → reflectorch-1.1.0}/exp_data/DIP-nSi_34a.dat +0 -0
  435. {reflectorch-1.0.0 → reflectorch-1.1.0}/exp_data/data_C60.pt +0 -0
  436. {reflectorch-1.0.0 → reflectorch-1.1.0}/exp_data/data_PTCDI-C3.pt +0 -0
  437. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/__init__.py +0 -0
  438. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/__init__.py +0 -0
  439. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/dataset.py +0 -0
  440. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/likelihoods.py +0 -0
  441. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/noise.py +0 -0
  442. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/__init__.py +0 -0
  443. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/base.py +0 -0
  444. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/exp_subprior_sampler.py +0 -0
  445. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/independent_priors.py +0 -0
  446. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/multilayer_models.py +0 -0
  447. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/multilayer_structures.py +0 -0
  448. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/no_constraints.py +0 -0
  449. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/parametric_models.py +0 -0
  450. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/parametric_subpriors.py +0 -0
  451. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/params.py +0 -0
  452. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/scaler_mixin.py +0 -0
  453. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/subprior_sampler.py +0 -0
  454. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/priors/utils.py +0 -0
  455. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/process_data.py +0 -0
  456. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/q_generator.py +0 -0
  457. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/reflectivity/__init__.py +0 -0
  458. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/reflectivity/abeles.py +0 -0
  459. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/reflectivity/kinematical.py +0 -0
  460. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/reflectivity/memory_eff.py +0 -0
  461. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/reflectivity/numpy_implementations.py +0 -0
  462. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/reflectivity/smearing.py +0 -0
  463. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/scale_curves.py +0 -0
  464. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/smearing.py +0 -0
  465. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/data_generation/utils.py +0 -0
  466. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/extensions/__init__.py +0 -0
  467. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/extensions/jupyter/__init__.py +0 -0
  468. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/extensions/jupyter/callbacks.py +0 -0
  469. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/extensions/matplotlib/__init__.py +0 -0
  470. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/extensions/matplotlib/losses.py +0 -0
  471. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/inference_model.py +0 -0
  472. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/multilayer_fitter.py +0 -0
  473. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/multilayer_inference_model.py +0 -0
  474. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/preprocess_exp/__init__.py +0 -0
  475. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/preprocess_exp/attenuation.py +0 -0
  476. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/preprocess_exp/cut_with_q_ratio.py +0 -0
  477. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/preprocess_exp/footprint.py +0 -0
  478. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/preprocess_exp/interpolation.py +0 -0
  479. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/preprocess_exp/normalize.py +0 -0
  480. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/preprocess_exp/preprocess.py +0 -0
  481. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/record_time.py +0 -0
  482. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/sampler_solution.py +0 -0
  483. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/scipy_fitter.py +0 -0
  484. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/inference/torch_fitter.py +0 -0
  485. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/ml/__init__.py +0 -0
  486. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/ml/basic_trainer.py +0 -0
  487. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/ml/callbacks.py +0 -0
  488. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/ml/dataloaders.py +0 -0
  489. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/ml/loggers.py +0 -0
  490. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/ml/schedulers.py +0 -0
  491. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/ml/trainers.py +0 -0
  492. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/ml/utils.py +0 -0
  493. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/__init__.py +0 -0
  494. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/activations.py +0 -0
  495. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/encoders/__init__.py +0 -0
  496. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/encoders/conv_encoder.py +0 -0
  497. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/encoders/conv_res_net.py +0 -0
  498. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/encoders/fno.py +0 -0
  499. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/encoders/transformers.py +0 -0
  500. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/networks/__init__.py +0 -0
  501. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/networks/mlp_networks.py +0 -0
  502. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/models/networks/residual_net.py +0 -0
  503. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/paths.py +0 -0
  504. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/runs/__init__.py +0 -0
  505. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/runs/config.py +0 -0
  506. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/runs/slurm_utils.py +0 -0
  507. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/runs/train.py +0 -0
  508. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/test_config.py +0 -0
  509. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/train.py +0 -0
  510. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/train_on_cluster.py +0 -0
  511. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch/utils.py +0 -0
  512. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch.egg-info/dependency_links.txt +0 -0
  513. {reflectorch-1.0.0 → reflectorch-1.1.0}/reflectorch.egg-info/top_level.txt +0 -0
  514. {reflectorch-1.0.0 → reflectorch-1.1.0}/setup.cfg +0 -0
  515. {reflectorch-1.0.0 → reflectorch-1.1.0}/tests/__init__.py +0 -0
  516. {reflectorch-1.0.0 → reflectorch-1.1.0}/tests/conftest.py +0 -0
  517. {reflectorch-1.0.0 → reflectorch-1.1.0}/tests/data/demo_scan.csv +0 -0
  518. {reflectorch-1.0.0/tests/func → reflectorch-1.1.0/tests/unit}/__init__.py +0 -0
  519. {reflectorch-1.0.0 → reflectorch-1.1.0}/tests/unit/test_preprocessing.py +0 -0
@@ -0,0 +1,24 @@
1
+ name: Draft PDF
2
+ on: [push]
3
+
4
+ jobs:
5
+ paper:
6
+ runs-on: ubuntu-latest
7
+ name: Paper Draft
8
+ steps:
9
+ - name: Checkout
10
+ uses: actions/checkout@v4
11
+ - name: Build draft PDF
12
+ uses: openjournals/openjournals-draft-action@master
13
+ with:
14
+ journal: joss
15
+ # This should be the path to the paper within your repo.
16
+ paper-path: paper/paper.md
17
+ - name: Upload
18
+ uses: actions/upload-artifact@v3
19
+ with:
20
+ name: paper
21
+ # This is the output path where Pandoc will write the compiled
22
+ # PDF. Note, this should be the same directory as the input
23
+ # paper.md
24
+ path: paper/paper.pdf
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Reflectorch Developers
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,13 @@
1
+ include configs/*
2
+ exclude saved_models/*.pt
3
+ exclude notebooks/*
4
+ exclude paper/*
5
+ exclude documentation/*
6
+ exclude docs/*
7
+ prune docs/*
8
+ exclude .github/*
9
+
10
+ include exp_data/data_C60.pt
11
+ include exp_data/data_PTCDI-C3.pt
12
+ include exp_data/33a.dat
13
+ include exp_data/DIP-nSi_34a.dat
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflectorch
3
- Version: 1.0.0
3
+ Version: 1.1.0
4
4
  Summary: A Pytorch-based package for the analysis of reflectometry data
5
5
  Author-email: Vladimir Starostin <vladimir.starostin@uni-tuebingen.de>, Valentin Munteanu <valentin.munteanu@uni-tuebingen.de>
6
- Maintainer-email: Valentin Munteanu <valentin.munteanu@uni-tuebingen.de>, Alexander Hinderhofer <alexander.hinderhofer@uni-tuebingen.de>
6
+ Maintainer-email: Valentin Munteanu <valentin.munteanu@uni-tuebingen.de>, Vladimir Starostin <vladimir.starostin@uni-tuebingen.de>, Alexander Hinderhofer <alexander.hinderhofer@uni-tuebingen.de>
7
7
  Project-URL: Source, https://github.com/schreiber-lab/reflectorch/
8
8
  Project-URL: Issues, https://github.com/schreiber-lab/reflectorch/issues
9
9
  Project-URL: Documentation, https://schreiber-lab.github.io/reflectorch/
@@ -26,7 +26,6 @@ Requires-Dist: PyYAML
26
26
  Requires-Dist: click
27
27
  Requires-Dist: matplotlib
28
28
  Requires-Dist: ipywidgets
29
- Requires-Dist: torchinfo
30
29
  Requires-Dist: huggingface_hub
31
30
  Provides-Extra: tests
32
31
  Requires-Dist: pytest; extra == "tests"
@@ -47,31 +46,34 @@ Requires-Dist: twine; extra == "build"
47
46
  [![YAML](https://img.shields.io/badge/yaml-%23ffffff.svg?style=for-the-badge&logo=yaml&logoColor=151515)](https://yaml.org/)
48
47
  [![Hugging Face](https://img.shields.io/badge/Hugging%20Face-%23FFD700.svg?style=for-the-badge&logo=huggingface&logoColor=black)](https://huggingface.co/valentinsingularity/reflectivity)
49
48
 
50
- [![License: GPLv3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
51
49
  [![Python version](https://img.shields.io/badge/python-3.7%7C3.8%7C3.9%7C3.10%7C3.11%7C3.12-blue.svg)](https://www.python.org/)
52
50
  ![CI workflow status](https://github.com/schreiber-lab/reflectorch/actions/workflows/ci.yml/badge.svg)
53
51
  ![Repos size](https://img.shields.io/github/repo-size/schreiber-lab/reflectorch)
54
- [![Jupyter Book Documentation](https://jupyterbook.org/badge.svg)](https://schreiber-lab.github.io/reflectorch/)
52
+ [![CodeFactor](https://www.codefactor.io/repository/github/schreiber-lab/reflectorch/badge)](https://www.codefactor.io/repository/github/schreiber-lab/reflectorch)
53
+ [![Jupyter Book Documentation](https://jupyterbook.org/badge.svg)](https://jupyterbook.org/)
54
+ [![Documentation Page](https://img.shields.io/badge/Documentation%20Page-%23FFDD33.svg?style=flat&logo=read-the-docs&logoColor=black)](https://schreiber-lab.github.io/reflectorch/)
55
55
  <!-- [![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) -->
56
56
 
57
57
 
58
- **Reflectorch** is a machine learning Python package for the analysis of X-ray and neutron reflectometry data based on Pytorch (written by [Vladimir Starostin](https://github.com/StarostinV/) & [Valentin Munteanu](https://github.com/valentinsingularity)). It provides functionality for the fast simulation of reflectometry curves on the GPU, customizable setup of the physical parameterization model and neural network architecture via YAML configuration files, and prior-aware training of neural networks as described in our paper [Neural network analysis of neutron and X-ray reflectivity data incorporating prior knowledge](https://doi.org/10.1107/S1600576724002115).
58
+ **Reflectorch** is a machine learning Python package for the analysis of X-ray and neutron reflectometry data, written by [Vladimir Starostin](https://github.com/StarostinV/) & [Valentin Munteanu](https://github.com/valentinsingularity) at the University of Tübingen. It provides functionality for the fast simulation of reflectometry curves on the GPU, customizable setup of the physical parameterization model and neural network architecture via YAML configuration files, and prior-aware training of neural networks as described in our paper [Neural network analysis of neutron and X-ray reflectivity data incorporating prior knowledge](https://doi.org/10.1107/S1600576724002115).
59
59
 
60
60
  ## Installation
61
61
 
62
- **Reflectorch** can be installed either from [![PyPi](https://img.shields.io/badge/PyPi-3776AB.svg?style=flat&logo=pypi&logoColor=white)](https://pypi.org/project/reflectorch/) via ``pip`` or from [![conda-forge](https://img.shields.io/badge/conda--forge-44A833.svg?style=flat&logo=conda-forge&logoColor=white)](https://anaconda.org/conda-forge/reflectorch/) via ``conda``:
62
+ **Reflectorch** can be installed from [![PyPi](https://img.shields.io/badge/PyPi-3776AB.svg?style=flat&logo=pypi&logoColor=white)](https://pypi.org/project/reflectorch/) via ``pip``:
63
+
64
+ <!-- or from [![conda-forge](https://img.shields.io/badge/conda--forge-44A833.svg?style=flat&logo=conda-forge&logoColor=white)](https://anaconda.org/conda-forge/reflectorch/) via ``conda``: -->
63
65
 
64
66
  ```bash
65
67
  pip install reflectorch
66
68
  ```
67
69
 
68
- or
70
+ <!-- or
69
71
 
70
72
  ```bash
71
73
  conda install -c conda-forge reflectorch
72
- ```
74
+ ``` -->
73
75
 
74
- Additionally, one can clone the entire Github repository and install the package in editable mode:
76
+ Alternatively, one can clone the entire Github repository and install the package in editable mode:
75
77
 
76
78
  ```bash
77
79
  git clone https://github.com/schreiber-lab/reflectorch.git
@@ -89,16 +91,21 @@ Users with Nvidia **GPU**s need to additionally install **Pytorch with CUDA supp
89
91
 
90
92
  ## Get started
91
93
 
92
- ![](https://img.shields.io/badge/Documentation%20Page-%23FFDD33.svg?style=flat&logo=read-the-docs&logoColor=black) The full documentation of the package, containing tutorials and the API reference, was built with [Jupyter Book](https://jupyterbook.org/) and [Sphinx](https://www.sphinx-doc.org) and it is hosted at the address: [https://schreiber-lab.github.io/reflectorch/](https://schreiber-lab.github.io/reflectorch/).
94
+ [![Documentation Page](https://img.shields.io/badge/Documentation%20Page-%23FFDD33.svg?style=flat&logo=read-the-docs&logoColor=black)](https://schreiber-lab.github.io/reflectorch/)
95
+ The full documentation of the package, containing tutorials and the API reference, was built with [Jupyter Book](https://jupyterbook.org/) and [Sphinx](https://www.sphinx-doc.org) and it is hosted at the address: [https://schreiber-lab.github.io/reflectorch/](https://schreiber-lab.github.io/reflectorch/).
96
+
97
+ [![Interactive Notebook](https://img.shields.io/badge/Interactive%20Notebook-%23F9AB00.svg?style=flat&logo=google-colab&logoColor=black)](https://colab.research.google.com/drive/1rf_M8S_5kYvUoK0-9-AYal_fO3oFl7ck?usp=sharing)
98
+ We provide an interactive Google Colab notebook for exploring the basic functionality of the package: [![Explore reflectorch in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1rf_M8S_5kYvUoK0-9-AYal_fO3oFl7ck?usp=sharing)<br>
93
99
 
94
- ![](https://img.shields.io/badge/Interactive%20Notebook-%23F9AB00.svg?style=flat&logo=google-colab&logoColor=black) We provide an interactive Google Colab notebook for exploring the basic functionality of the package: [![Explore reflectorch in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1rf_M8S_5kYvUoK0-9-AYal_fO3oFl7ck?usp=sharing)<br>
100
+ [![Hugging Face](https://img.shields.io/badge/Hugging%20Face-%23FFD700.svg?style=flat&logo=huggingface&logoColor=black)](https://huggingface.co/valentinsingularity/reflectivity)
101
+ Configuration files and the corresponding pretrained model weights are hosted on Huggingface: [https://huggingface.co/valentinsingularity/reflectivity](https://huggingface.co/valentinsingularity/reflectivity).
95
102
 
96
- ![](https://img.shields.io/badge/Hugging%20Face-%23FFD700.svg?style=flat&logo=huggingface&logoColor=black) Configuration files and the corresponding pretrained model weights are hosted on Huggingface: [https://huggingface.co/valentinsingularity/reflectivity](https://huggingface.co/valentinsingularity/reflectivity).
103
+ [![Docker](https://img.shields.io/badge/Docker-2496ED.svg?style=flat&logo=docker&logoColor=white)](https://hub.docker.com/)
104
+ Docker images for reflectorch *will* be hosted on Dockerhub.
97
105
 
98
- ![](https://img.shields.io/badge/Docker-2496ED.svg?style=flat&logo=docker&logoColor=white) Docker images for reflectorch *will* be hosted on Dockerhub.
99
106
 
100
107
  ## Citation
101
- If you find our work useful in your research, please cite:
108
+ If you find our work useful in your research, please cite as follows:
102
109
  ```
103
110
  @Article{Munteanu2024,
104
111
  author = {Munteanu, Valentin and Starostin, Vladimir and Greco, Alessandro and Pithan, Linus and Gerlach, Alexander and Hinderhofer, Alexander and Kowarik, Stefan and Schreiber, Frank},
@@ -0,0 +1,83 @@
1
+ # Reflectorch
2
+
3
+ [![PyTorch](https://img.shields.io/badge/PyTorch-%23EE4C2C.svg?style=for-the-badge&logo=PyTorch&logoColor=white)](https://pytorch.org/)
4
+ [![NumPy](https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge&logo=numpy&logoColor=white)](https://numpy.org/)
5
+ [![SciPy](https://img.shields.io/badge/SciPy-%230C55A5.svg?style=for-the-badge&logo=scipy&logoColor=%white)](https://scipy.org/)
6
+ [![Matplotlib](https://img.shields.io/badge/Matplotlib-%23ffffff.svg?style=for-the-badge&logo=Matplotlib&logoColor=black)](https://matplotlib.org/)
7
+ [![YAML](https://img.shields.io/badge/yaml-%23ffffff.svg?style=for-the-badge&logo=yaml&logoColor=151515)](https://yaml.org/)
8
+ [![Hugging Face](https://img.shields.io/badge/Hugging%20Face-%23FFD700.svg?style=for-the-badge&logo=huggingface&logoColor=black)](https://huggingface.co/valentinsingularity/reflectivity)
9
+
10
+ [![Python version](https://img.shields.io/badge/python-3.7%7C3.8%7C3.9%7C3.10%7C3.11%7C3.12-blue.svg)](https://www.python.org/)
11
+ ![CI workflow status](https://github.com/schreiber-lab/reflectorch/actions/workflows/ci.yml/badge.svg)
12
+ ![Repos size](https://img.shields.io/github/repo-size/schreiber-lab/reflectorch)
13
+ [![CodeFactor](https://www.codefactor.io/repository/github/schreiber-lab/reflectorch/badge)](https://www.codefactor.io/repository/github/schreiber-lab/reflectorch)
14
+ [![Jupyter Book Documentation](https://jupyterbook.org/badge.svg)](https://jupyterbook.org/)
15
+ [![Documentation Page](https://img.shields.io/badge/Documentation%20Page-%23FFDD33.svg?style=flat&logo=read-the-docs&logoColor=black)](https://schreiber-lab.github.io/reflectorch/)
16
+ <!-- [![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) -->
17
+
18
+
19
+ **Reflectorch** is a machine learning Python package for the analysis of X-ray and neutron reflectometry data, written by [Vladimir Starostin](https://github.com/StarostinV/) & [Valentin Munteanu](https://github.com/valentinsingularity) at the University of Tübingen. It provides functionality for the fast simulation of reflectometry curves on the GPU, customizable setup of the physical parameterization model and neural network architecture via YAML configuration files, and prior-aware training of neural networks as described in our paper [Neural network analysis of neutron and X-ray reflectivity data incorporating prior knowledge](https://doi.org/10.1107/S1600576724002115).
20
+
21
+ ## Installation
22
+
23
+ **Reflectorch** can be installed from [![PyPi](https://img.shields.io/badge/PyPi-3776AB.svg?style=flat&logo=pypi&logoColor=white)](https://pypi.org/project/reflectorch/) via ``pip``:
24
+
25
+ <!-- or from [![conda-forge](https://img.shields.io/badge/conda--forge-44A833.svg?style=flat&logo=conda-forge&logoColor=white)](https://anaconda.org/conda-forge/reflectorch/) via ``conda``: -->
26
+
27
+ ```bash
28
+ pip install reflectorch
29
+ ```
30
+
31
+ <!-- or
32
+
33
+ ```bash
34
+ conda install -c conda-forge reflectorch
35
+ ``` -->
36
+
37
+ Alternatively, one can clone the entire Github repository and install the package in editable mode:
38
+
39
+ ```bash
40
+ git clone https://github.com/schreiber-lab/reflectorch.git
41
+ pip install -e .
42
+ ```
43
+
44
+ For development purposes, the package can be installed together with the optional dependencies for building the distribution, testing and documentation:
45
+
46
+ ```bash
47
+ git clone https://github.com/schreiber-lab/reflectorch.git
48
+ pip install -e .[tests,docs,build]
49
+ ```
50
+
51
+ Users with Nvidia **GPU**s need to additionally install **Pytorch with CUDA support** corresponding to their hardware and operating system according to the instructions from the [Pytorch website](https://pytorch.org/get-started/locally/)
52
+
53
+ ## Get started
54
+
55
+ [![Documentation Page](https://img.shields.io/badge/Documentation%20Page-%23FFDD33.svg?style=flat&logo=read-the-docs&logoColor=black)](https://schreiber-lab.github.io/reflectorch/)
56
+ The full documentation of the package, containing tutorials and the API reference, was built with [Jupyter Book](https://jupyterbook.org/) and [Sphinx](https://www.sphinx-doc.org) and it is hosted at the address: [https://schreiber-lab.github.io/reflectorch/](https://schreiber-lab.github.io/reflectorch/).
57
+
58
+ [![Interactive Notebook](https://img.shields.io/badge/Interactive%20Notebook-%23F9AB00.svg?style=flat&logo=google-colab&logoColor=black)](https://colab.research.google.com/drive/1rf_M8S_5kYvUoK0-9-AYal_fO3oFl7ck?usp=sharing)
59
+ We provide an interactive Google Colab notebook for exploring the basic functionality of the package: [![Explore reflectorch in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1rf_M8S_5kYvUoK0-9-AYal_fO3oFl7ck?usp=sharing)<br>
60
+
61
+ [![Hugging Face](https://img.shields.io/badge/Hugging%20Face-%23FFD700.svg?style=flat&logo=huggingface&logoColor=black)](https://huggingface.co/valentinsingularity/reflectivity)
62
+ Configuration files and the corresponding pretrained model weights are hosted on Huggingface: [https://huggingface.co/valentinsingularity/reflectivity](https://huggingface.co/valentinsingularity/reflectivity).
63
+
64
+ [![Docker](https://img.shields.io/badge/Docker-2496ED.svg?style=flat&logo=docker&logoColor=white)](https://hub.docker.com/)
65
+ Docker images for reflectorch *will* be hosted on Dockerhub.
66
+
67
+
68
+ ## Citation
69
+ If you find our work useful in your research, please cite as follows:
70
+ ```
71
+ @Article{Munteanu2024,
72
+ author = {Munteanu, Valentin and Starostin, Vladimir and Greco, Alessandro and Pithan, Linus and Gerlach, Alexander and Hinderhofer, Alexander and Kowarik, Stefan and Schreiber, Frank},
73
+ journal = {Journal of Applied Crystallography},
74
+ title = {Neural network analysis of neutron and X-ray reflectivity data incorporating prior knowledge},
75
+ year = {2024},
76
+ issn = {1600-5767},
77
+ month = mar,
78
+ number = {2},
79
+ volume = {57},
80
+ doi = {10.1107/s1600576724002115},
81
+ publisher = {International Union of Crystallography (IUCr)},
82
+ }
83
+ ```
@@ -0,0 +1,103 @@
1
+ general:
2
+ name: c_test_safetensors
3
+ root_dir: null
4
+
5
+ dset:
6
+ cls: ReflectivityDataLoader
7
+ prior_sampler:
8
+ cls: SubpriorParametricSampler
9
+ kwargs:
10
+ param_ranges:
11
+ thicknesses: [1., 500.]
12
+ roughnesses: [0., 60.]
13
+ slds: [0., 25.]
14
+ bound_width_ranges:
15
+ thicknesses: [1.0e-2, 500.]
16
+ roughnesses: [1.0e-2, 60.]
17
+ slds: [ 1.0e-2, 4.]
18
+ model_name: standard_model
19
+ max_num_layers: 2
20
+ constrained_roughness: true
21
+ max_thickness_share: 0.5
22
+ logdist: false
23
+ scale_params_by_ranges: false
24
+ scaled_range: [-1., 1.]
25
+ device: 'cuda'
26
+
27
+ q_generator:
28
+ cls: ConstantQ
29
+ kwargs:
30
+ q: [0.02, 0.15, 128]
31
+ device: 'cuda'
32
+
33
+ intensity_noise:
34
+ cls: BasicExpIntensityNoise
35
+ kwargs:
36
+ relative_errors: [0.0, 0.2]
37
+ abs_errors: 0.0
38
+ consistent_rel_err: true
39
+ logdist: false
40
+ apply_shift: true
41
+ shift_range: [-0.3, 0.3]
42
+ apply_scaling: true
43
+ scale_range: [-0.02, 0.02]
44
+ apply_background: false
45
+ background_range: [1.0e-10, 1.0e-8]
46
+
47
+ q_noise:
48
+ cls: BasicQNoiseGenerator
49
+ kwargs:
50
+ shift_std: 1.0e-3
51
+ noise_std: [0., 1.0e-3]
52
+
53
+ curves_scaler:
54
+ cls: LogAffineCurvesScaler
55
+ kwargs:
56
+ weight: 0.2
57
+ bias: 1.0
58
+ eps: 1.0e-10
59
+
60
+ model:
61
+ network:
62
+ cls: NetworkWithPriorsConvEmb
63
+ pretrained_name: null
64
+ device: 'cuda'
65
+ kwargs:
66
+ in_channels: 1
67
+ hidden_channels: [32, 64, 128, 256, 512]
68
+ dim_embedding: 128
69
+ dim_avpool: 1
70
+ embedding_net_activation: 'gelu'
71
+ use_batch_norm: true
72
+ dim_out: 8
73
+ layer_width: 512
74
+ num_blocks: 6
75
+ repeats_per_block: 2
76
+ mlp_activation: 'gelu'
77
+ dropout_rate: 0.0
78
+ pretrained_embedding_net: null
79
+
80
+ training:
81
+ num_iterations: 10000
82
+ batch_size: 4096
83
+ lr: 1.0e-4
84
+ grad_accumulation_steps: 1
85
+ clip_grad_norm_max: null
86
+ train_with_q_input: False
87
+ update_tqdm_freq: 1
88
+ optimizer: AdamW
89
+ trainer_kwargs:
90
+ optim_kwargs:
91
+ betas: [0.9, 0.999]
92
+ weight_decay: 0.0005
93
+ callbacks:
94
+ save_best_model:
95
+ enable: true
96
+ freq: 500
97
+ lr_scheduler:
98
+ cls: StepLR
99
+ kwargs:
100
+ step_size: 500
101
+ gamma: 0.5
102
+ logger:
103
+ use_neptune: false
@@ -4,13 +4,14 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "reflectorch"
7
- version = "1.0.0"
7
+ version = "1.1.0"
8
8
  authors = [
9
9
  {name = "Vladimir Starostin", email="vladimir.starostin@uni-tuebingen.de"},
10
10
  {name = "Valentin Munteanu", email="valentin.munteanu@uni-tuebingen.de"}
11
11
  ]
12
12
  maintainers = [
13
13
  {name = "Valentin Munteanu", email="valentin.munteanu@uni-tuebingen.de"},
14
+ {name = "Vladimir Starostin", email="vladimir.starostin@uni-tuebingen.de"},
14
15
  {name = "Alexander Hinderhofer", email="alexander.hinderhofer@uni-tuebingen.de"}
15
16
  ]
16
17
  description = "A Pytorch-based package for the analysis of reflectometry data"
@@ -36,7 +37,6 @@ dependencies = [
36
37
  "click",
37
38
  "matplotlib",
38
39
  "ipywidgets",
39
- "torchinfo",
40
40
  "huggingface_hub",
41
41
  ]
42
42
 
@@ -283,7 +283,7 @@ def constrained_roughness_and_isld_sampler(
283
283
  params[..., roughness_mask] = roughnesses
284
284
 
285
285
  max_isld = torch.minimum(
286
- params[..., sld_mask] * coef_isld,
286
+ torch.abs(params[..., sld_mask]) * coef_isld,
287
287
  total_max_bounds[..., isld_mask]
288
288
  )
289
289
  min_isld = total_min_bounds[..., isld_mask]
@@ -1,4 +1,5 @@
1
1
  from reflectorch.inference.inference_model import InferenceModel, EasyInferenceModel
2
+ from reflectorch.inference.query_matcher import HuggingfaceQueryMatcher
2
3
  from reflectorch.inference.multilayer_inference_model import MultilayerInferenceModel
3
4
  from reflectorch.inference.preprocess_exp import (
4
5
  StandardPreprocessing,
@@ -13,6 +14,7 @@ __all__ = [
13
14
  "InferenceModel",
14
15
  "EasyInferenceModel",
15
16
  "MultilayerInferenceModel",
17
+ "HuggingfaceQueryMatcher",
16
18
  "StandardPreprocessing",
17
19
  "standard_preprocessing",
18
20
  "ReflGradientFit",
@@ -0,0 +1,82 @@
1
+ import os
2
+ import tempfile
3
+ import yaml
4
+ from huggingface_hub import hf_hub_download, list_repo_files
5
+
6
+ class HuggingfaceQueryMatcher:
7
+ """Downloads the available configurations files to a temporary directory and provides functionality for filtering those configuration files matching user specified queries.
8
+
9
+ Args:
10
+ repo_id (str): The Hugging Face repository ID.
11
+ config_dir (str): Directory within the repo where YAML files are stored.
12
+ """
13
+ def __init__(self, repo_id='valentinsingularity/reflectivity', config_dir='configs'):
14
+ self.repo_id = repo_id
15
+ self.config_dir = config_dir
16
+ self.cache = {
17
+ 'parsed_configs': None,
18
+ 'temp_dir': None
19
+ }
20
+ self._renew_cache()
21
+
22
+ def _renew_cache(self):
23
+ temp_dir = tempfile.mkdtemp()
24
+ print(f"Temporary directory created at: {temp_dir}")
25
+
26
+ repo_files = list_repo_files(self.repo_id, repo_type='model')
27
+ config_files = [file for file in repo_files if file.startswith(self.config_dir) and file.endswith('.yaml')]
28
+
29
+ downloaded_files = []
30
+ for file in config_files:
31
+ file_path = hf_hub_download(repo_id=self.repo_id, filename=file, local_dir=temp_dir, repo_type='model')
32
+ downloaded_files.append(file_path)
33
+
34
+ parsed_configs = {}
35
+ for file_path in downloaded_files:
36
+ with open(file_path, 'r') as file:
37
+ config_data = yaml.safe_load(file)
38
+ file_name = os.path.basename(file_path)
39
+ parsed_configs[file_name] = config_data
40
+
41
+ self.cache['parsed_configs'] = parsed_configs
42
+ self.cache['temp_dir'] = temp_dir
43
+
44
+ def get_matching_configs(self, query):
45
+ """retrieves configuration files that match the user specified query.
46
+
47
+ Args:
48
+ query (dict): Dictionary of key-value pairs to filter configurations, e.g. ``query = {'dset.prior_sampler.kwargs.max_num_layers': 3, 'dset.prior_sampler.kwargs.param_ranges.slds': [0., 100.]}``.
49
+ For keys containing the ``param_ranges`` subkey a configuration is selected if the value of the query (i.e. desired parameter range)
50
+ is a subrange of the parameter range in the configuration, in all other cases the values must match exactly.
51
+
52
+ Returns:
53
+ list: List of file names that match the query.
54
+ """
55
+
56
+ filtered_configs = []
57
+
58
+ for file_name, config_data in self.cache['parsed_configs'].items():
59
+ if self.matches_query(config_data, query):
60
+ filtered_configs.append(file_name)
61
+
62
+ return filtered_configs
63
+
64
+ def matches_query(self, config_data, query):
65
+ for q_key, q_value in query.items():
66
+ keys = q_key.split('.')
67
+ value = self.deep_get(config_data, keys)
68
+ if 'param_ranges' in keys:
69
+ if q_value[0] < value[0] or q_value[1] > value[1]:
70
+ return False
71
+ else:
72
+ if value != q_value:
73
+ return False
74
+
75
+ return True
76
+
77
+ def deep_get(self, d, keys):
78
+ for key in keys:
79
+ if isinstance(d, dict):
80
+ d = d.get(key, None)
81
+
82
+ return d
@@ -177,7 +177,7 @@ def get_trainer_from_config(config: dict, folder_paths: dict = None):
177
177
  return trainer
178
178
 
179
179
 
180
- def get_trainer_by_name(config_name, config_dir=None, model_path=None, load_weights: bool = True, inference_device = None):
180
+ def get_trainer_by_name(config_name, config_dir=None, model_path=None, load_weights: bool = True, inference_device: str = 'cuda'):
181
181
  """Initializes a trainer object based on a configuration file (i.e. the model name) and optionally loads \
182
182
  saved weights into the network
183
183
 
@@ -186,7 +186,7 @@ def get_trainer_by_name(config_name, config_dir=None, model_path=None, load_weig
186
186
  config_dir (str): path of the configuration directory
187
187
  model_path (str, optional): path to the network weights.
188
188
  load_weights (bool, optional): if True the saved network weights are loaded into the network. Defaults to True.
189
-
189
+ inference_device (str, optional): overwrites the device in the configuration file for the purpose of inference on a different device then the training was performed on. Defaults to 'cuda'.
190
190
 
191
191
  Returns:
192
192
  Trainer: the trainer object
@@ -195,10 +195,9 @@ def get_trainer_by_name(config_name, config_dir=None, model_path=None, load_weig
195
195
  config['model']['network']['pretrained_name'] = None
196
196
  config['training']['logger']['use_neptune'] = False
197
197
 
198
- if inference_device:
199
- config['model']['network']['device'] = inference_device
200
- config['dset']['prior_sampler']['kwargs']['device'] = inference_device
201
- config['dset']['q_generator']['kwargs']['device'] = inference_device
198
+ config['model']['network']['device'] = inference_device
199
+ config['dset']['prior_sampler']['kwargs']['device'] = inference_device
200
+ config['dset']['q_generator']['kwargs']['device'] = inference_device
202
201
 
203
202
  trainer = get_trainer_from_config(config)
204
203
 
@@ -216,7 +215,7 @@ def get_trainer_by_name(config_name, config_dir=None, model_path=None, load_weig
216
215
  model_path = SAVED_MODELS_DIR / model_name
217
216
 
218
217
  try:
219
- state_dict = torch.load(model_path)
218
+ state_dict = torch.load(model_path, map_location=inference_device)
220
219
  except Exception as err:
221
220
  raise RuntimeError(f'Could not load model from {model_path}') from err
222
221
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflectorch
3
- Version: 1.0.0
3
+ Version: 1.1.0
4
4
  Summary: A Pytorch-based package for the analysis of reflectometry data
5
5
  Author-email: Vladimir Starostin <vladimir.starostin@uni-tuebingen.de>, Valentin Munteanu <valentin.munteanu@uni-tuebingen.de>
6
- Maintainer-email: Valentin Munteanu <valentin.munteanu@uni-tuebingen.de>, Alexander Hinderhofer <alexander.hinderhofer@uni-tuebingen.de>
6
+ Maintainer-email: Valentin Munteanu <valentin.munteanu@uni-tuebingen.de>, Vladimir Starostin <vladimir.starostin@uni-tuebingen.de>, Alexander Hinderhofer <alexander.hinderhofer@uni-tuebingen.de>
7
7
  Project-URL: Source, https://github.com/schreiber-lab/reflectorch/
8
8
  Project-URL: Issues, https://github.com/schreiber-lab/reflectorch/issues
9
9
  Project-URL: Documentation, https://schreiber-lab.github.io/reflectorch/
@@ -26,7 +26,6 @@ Requires-Dist: PyYAML
26
26
  Requires-Dist: click
27
27
  Requires-Dist: matplotlib
28
28
  Requires-Dist: ipywidgets
29
- Requires-Dist: torchinfo
30
29
  Requires-Dist: huggingface_hub
31
30
  Provides-Extra: tests
32
31
  Requires-Dist: pytest; extra == "tests"
@@ -47,31 +46,34 @@ Requires-Dist: twine; extra == "build"
47
46
  [![YAML](https://img.shields.io/badge/yaml-%23ffffff.svg?style=for-the-badge&logo=yaml&logoColor=151515)](https://yaml.org/)
48
47
  [![Hugging Face](https://img.shields.io/badge/Hugging%20Face-%23FFD700.svg?style=for-the-badge&logo=huggingface&logoColor=black)](https://huggingface.co/valentinsingularity/reflectivity)
49
48
 
50
- [![License: GPLv3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
51
49
  [![Python version](https://img.shields.io/badge/python-3.7%7C3.8%7C3.9%7C3.10%7C3.11%7C3.12-blue.svg)](https://www.python.org/)
52
50
  ![CI workflow status](https://github.com/schreiber-lab/reflectorch/actions/workflows/ci.yml/badge.svg)
53
51
  ![Repos size](https://img.shields.io/github/repo-size/schreiber-lab/reflectorch)
54
- [![Jupyter Book Documentation](https://jupyterbook.org/badge.svg)](https://schreiber-lab.github.io/reflectorch/)
52
+ [![CodeFactor](https://www.codefactor.io/repository/github/schreiber-lab/reflectorch/badge)](https://www.codefactor.io/repository/github/schreiber-lab/reflectorch)
53
+ [![Jupyter Book Documentation](https://jupyterbook.org/badge.svg)](https://jupyterbook.org/)
54
+ [![Documentation Page](https://img.shields.io/badge/Documentation%20Page-%23FFDD33.svg?style=flat&logo=read-the-docs&logoColor=black)](https://schreiber-lab.github.io/reflectorch/)
55
55
  <!-- [![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) -->
56
56
 
57
57
 
58
- **Reflectorch** is a machine learning Python package for the analysis of X-ray and neutron reflectometry data based on Pytorch (written by [Vladimir Starostin](https://github.com/StarostinV/) & [Valentin Munteanu](https://github.com/valentinsingularity)). It provides functionality for the fast simulation of reflectometry curves on the GPU, customizable setup of the physical parameterization model and neural network architecture via YAML configuration files, and prior-aware training of neural networks as described in our paper [Neural network analysis of neutron and X-ray reflectivity data incorporating prior knowledge](https://doi.org/10.1107/S1600576724002115).
58
+ **Reflectorch** is a machine learning Python package for the analysis of X-ray and neutron reflectometry data, written by [Vladimir Starostin](https://github.com/StarostinV/) & [Valentin Munteanu](https://github.com/valentinsingularity) at the University of Tübingen. It provides functionality for the fast simulation of reflectometry curves on the GPU, customizable setup of the physical parameterization model and neural network architecture via YAML configuration files, and prior-aware training of neural networks as described in our paper [Neural network analysis of neutron and X-ray reflectivity data incorporating prior knowledge](https://doi.org/10.1107/S1600576724002115).
59
59
 
60
60
  ## Installation
61
61
 
62
- **Reflectorch** can be installed either from [![PyPi](https://img.shields.io/badge/PyPi-3776AB.svg?style=flat&logo=pypi&logoColor=white)](https://pypi.org/project/reflectorch/) via ``pip`` or from [![conda-forge](https://img.shields.io/badge/conda--forge-44A833.svg?style=flat&logo=conda-forge&logoColor=white)](https://anaconda.org/conda-forge/reflectorch/) via ``conda``:
62
+ **Reflectorch** can be installed from [![PyPi](https://img.shields.io/badge/PyPi-3776AB.svg?style=flat&logo=pypi&logoColor=white)](https://pypi.org/project/reflectorch/) via ``pip``:
63
+
64
+ <!-- or from [![conda-forge](https://img.shields.io/badge/conda--forge-44A833.svg?style=flat&logo=conda-forge&logoColor=white)](https://anaconda.org/conda-forge/reflectorch/) via ``conda``: -->
63
65
 
64
66
  ```bash
65
67
  pip install reflectorch
66
68
  ```
67
69
 
68
- or
70
+ <!-- or
69
71
 
70
72
  ```bash
71
73
  conda install -c conda-forge reflectorch
72
- ```
74
+ ``` -->
73
75
 
74
- Additionally, one can clone the entire Github repository and install the package in editable mode:
76
+ Alternatively, one can clone the entire Github repository and install the package in editable mode:
75
77
 
76
78
  ```bash
77
79
  git clone https://github.com/schreiber-lab/reflectorch.git
@@ -89,16 +91,21 @@ Users with Nvidia **GPU**s need to additionally install **Pytorch with CUDA supp
89
91
 
90
92
  ## Get started
91
93
 
92
- ![](https://img.shields.io/badge/Documentation%20Page-%23FFDD33.svg?style=flat&logo=read-the-docs&logoColor=black) The full documentation of the package, containing tutorials and the API reference, was built with [Jupyter Book](https://jupyterbook.org/) and [Sphinx](https://www.sphinx-doc.org) and it is hosted at the address: [https://schreiber-lab.github.io/reflectorch/](https://schreiber-lab.github.io/reflectorch/).
94
+ [![Documentation Page](https://img.shields.io/badge/Documentation%20Page-%23FFDD33.svg?style=flat&logo=read-the-docs&logoColor=black)](https://schreiber-lab.github.io/reflectorch/)
95
+ The full documentation of the package, containing tutorials and the API reference, was built with [Jupyter Book](https://jupyterbook.org/) and [Sphinx](https://www.sphinx-doc.org) and it is hosted at the address: [https://schreiber-lab.github.io/reflectorch/](https://schreiber-lab.github.io/reflectorch/).
96
+
97
+ [![Interactive Notebook](https://img.shields.io/badge/Interactive%20Notebook-%23F9AB00.svg?style=flat&logo=google-colab&logoColor=black)](https://colab.research.google.com/drive/1rf_M8S_5kYvUoK0-9-AYal_fO3oFl7ck?usp=sharing)
98
+ We provide an interactive Google Colab notebook for exploring the basic functionality of the package: [![Explore reflectorch in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1rf_M8S_5kYvUoK0-9-AYal_fO3oFl7ck?usp=sharing)<br>
93
99
 
94
- ![](https://img.shields.io/badge/Interactive%20Notebook-%23F9AB00.svg?style=flat&logo=google-colab&logoColor=black) We provide an interactive Google Colab notebook for exploring the basic functionality of the package: [![Explore reflectorch in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1rf_M8S_5kYvUoK0-9-AYal_fO3oFl7ck?usp=sharing)<br>
100
+ [![Hugging Face](https://img.shields.io/badge/Hugging%20Face-%23FFD700.svg?style=flat&logo=huggingface&logoColor=black)](https://huggingface.co/valentinsingularity/reflectivity)
101
+ Configuration files and the corresponding pretrained model weights are hosted on Huggingface: [https://huggingface.co/valentinsingularity/reflectivity](https://huggingface.co/valentinsingularity/reflectivity).
95
102
 
96
- ![](https://img.shields.io/badge/Hugging%20Face-%23FFD700.svg?style=flat&logo=huggingface&logoColor=black) Configuration files and the corresponding pretrained model weights are hosted on Huggingface: [https://huggingface.co/valentinsingularity/reflectivity](https://huggingface.co/valentinsingularity/reflectivity).
103
+ [![Docker](https://img.shields.io/badge/Docker-2496ED.svg?style=flat&logo=docker&logoColor=white)](https://hub.docker.com/)
104
+ Docker images for reflectorch *will* be hosted on Dockerhub.
97
105
 
98
- ![](https://img.shields.io/badge/Docker-2496ED.svg?style=flat&logo=docker&logoColor=white) Docker images for reflectorch *will* be hosted on Dockerhub.
99
106
 
100
107
  ## Citation
101
- If you find our work useful in your research, please cite:
108
+ If you find our work useful in your research, please cite as follows:
102
109
  ```
103
110
  @Article{Munteanu2024,
104
111
  author = {Munteanu, Valentin and Starostin, Vladimir and Greco, Alessandro and Pithan, Linus and Gerlach, Alexander and Hinderhofer, Alexander and Kowarik, Stefan and Schreiber, Frank},