httomo-backends 1.0.1__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.
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/PKG-INFO +1 -1
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/cufft.py +0 -1
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu.yaml +9 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/corr.py +10 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/denoise.py +0 -1
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/morph.py +13 -2
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/rescale.py +6 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/normalize.py +0 -1
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/stripe.py +9 -2
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/algorithm.py +65 -1
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/algorithm.py +0 -1
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/scripts/yaml_templates_generator.py +1 -0
- httomo_backends-1.1.0/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/ADMM3d_tomobar.yaml +17 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends.egg-info/PKG-INFO +1 -1
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends.egg-info/SOURCES.txt +1 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/pyproject.toml +1 -1
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/tests/test_httomolibgpu.py +167 -16
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/LICENSE +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/README.rst +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolib/httomolib.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolib/httomolib_modules.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu_modules.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/phase.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/peak_memory_line_profile_hook.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/corr.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/stripe.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/tomopy.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/backends/tomopy/tomopy_modules.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/packages/httomo.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/methods_database/query.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/FBP2d_astra_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/FBP3d_tomobar_denoising_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/FBP3d_tomobar_noimagesaving_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/FISTA3d_tomobar_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/LPRec3d_tomobar_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/deg360_distortion_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/deg360_paganin_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/sweep_center_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/titaren_center_pc_FBP3d_resample_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/pipelines_full/tomopy_gridrec_directive.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/scripts/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/scripts/json_pipelines_generator.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/scripts/yaml_pipelines_generator.py +1 -1
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/scripts/yaml_unsupported_tomopy_remove.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomo/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomo/httomo.data.hdf.loaders/standard_tomo.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomo/httomo.methods/calculate_stats.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomo/httomo.methods/save_intermediate_data.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolib/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.images/save_to_images.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.morph/data_reducer.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.rescale/rescale_to_int.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.segm/binary_thresholding.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.utils/data_checker.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolib/httomolib.prep.phase/paganin_filter.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/median_filter.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/remove_outlier.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_PD.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_ROF.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/data_resampler.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/sino_360_to_180.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.utils/data_checker.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.alignment/distortion_correction_proj_discorpy.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/dark_flat_field_correction.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/minus_log.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_savu_legacy.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_fw.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_ti.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FISTA3d_tomobar.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/LPRec3d_tomobar.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/SIRT3d_tomobar.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_360.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_pc.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_vo.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/__init__.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/adjust_range.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/circ_mask.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/gaussian_filter.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter3d.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter_nonfinite.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_nan.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_neg.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier1d.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier3d.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_ring.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/sobel_filter.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/downsample.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/pad.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/sino_360_to_180.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/trim_sinogram.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/upsample.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_jitter.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_noise.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_joint.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_seq.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/blur_edges.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_proj.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_sino.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/scale.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/shift_images.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/minus_log.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_bg.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_nf.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_roi.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.phase/retrieve_phase.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_all_stripe.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_dead_stripe.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_large_stripe.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_filtering.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_fitting.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_interpolation.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_fw.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_sf.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_ti.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_detect3d.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_mask3d.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.algorithm/recon.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_pc.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_vo.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_drift.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_focal_spot_blur.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_gaussian.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_poisson.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_rings.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_salt_pepper.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_zingers.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project2.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project3.yaml +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends.egg-info/dependency_links.txt +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends.egg-info/requires.txt +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/httomo_backends.egg-info/top_level.txt +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/setup.cfg +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/tests/test_method_query.py +0 -0
- {httomo_backends-1.0.1 → httomo_backends-1.1.0}/tests/test_tomopy.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: httomo-backends
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Supplementary files for HTTomo backends.
|
|
5
5
|
Author: Garry ODonnell, Jacob Williamson
|
|
6
6
|
Author-email: Daniil Kazantsev <daniil.kazantsev@diamond.ac.uk>, Yousef Moazzam <yousef.moazzam@diamond.ac.uk>, Jessica Verschoyle <jessica.verschoyle@diamond.ac.uk>, Naman Gera <naman.gera@diamond.ac.uk>, scientificsoftware@diamond.ac.uk
|
|
@@ -227,6 +227,15 @@ recon:
|
|
|
227
227
|
memory_gpu:
|
|
228
228
|
multiplier: None
|
|
229
229
|
method: module
|
|
230
|
+
ADMM3d_tomobar:
|
|
231
|
+
pattern: sinogram
|
|
232
|
+
output_dims_change: True
|
|
233
|
+
implementation: gpu_cupy
|
|
234
|
+
save_result_default: True
|
|
235
|
+
padding: True
|
|
236
|
+
memory_gpu:
|
|
237
|
+
multiplier: None
|
|
238
|
+
method: module
|
|
230
239
|
rotation:
|
|
231
240
|
find_center_vo:
|
|
232
241
|
pattern: projection
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import inspect
|
|
1
2
|
from typing import Tuple
|
|
2
3
|
|
|
4
|
+
from httomolibgpu.misc.corr import median_filter, remove_outlier
|
|
3
5
|
|
|
4
6
|
__all__ = [
|
|
5
7
|
"_calc_padding_remove_outlier",
|
|
@@ -8,10 +10,18 @@ __all__ = [
|
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
def _calc_padding_remove_outlier(**kwargs) -> Tuple[int, int]:
|
|
13
|
+
if "kernel_size" not in kwargs:
|
|
14
|
+
params = inspect.signature(remove_outlier).parameters
|
|
15
|
+
kwargs["kernel_size"] = params["kernel_size"].default
|
|
16
|
+
|
|
11
17
|
kernel_size = kwargs["kernel_size"]
|
|
12
18
|
return (kernel_size // 2, kernel_size // 2)
|
|
13
19
|
|
|
14
20
|
|
|
15
21
|
def _calc_padding_median_filter(**kwargs) -> Tuple[int, int]:
|
|
22
|
+
if "kernel_size" not in kwargs:
|
|
23
|
+
params = inspect.signature(median_filter).parameters
|
|
24
|
+
kwargs["kernel_size"] = params["kernel_size"].default
|
|
25
|
+
|
|
16
26
|
kernel_size = kwargs["kernel_size"]
|
|
17
27
|
return (kernel_size // 2, kernel_size // 2)
|
|
@@ -20,10 +20,13 @@
|
|
|
20
20
|
# ---------------------------------------------------------------------------
|
|
21
21
|
"""Modules for memory estimation for morph functions"""
|
|
22
22
|
|
|
23
|
+
import inspect
|
|
23
24
|
import math
|
|
24
25
|
from typing import Tuple
|
|
25
26
|
import numpy as np
|
|
26
27
|
|
|
28
|
+
from httomolibgpu.misc.morph import data_resampler, sino_360_to_180
|
|
29
|
+
|
|
27
30
|
__all__ = [
|
|
28
31
|
"_calc_memory_bytes_data_resampler",
|
|
29
32
|
"_calc_output_dim_data_resampler",
|
|
@@ -42,6 +45,10 @@ def _calc_memory_bytes_data_resampler(
|
|
|
42
45
|
**kwargs,
|
|
43
46
|
) -> Tuple[int, int]:
|
|
44
47
|
newshape = kwargs["newshape"]
|
|
48
|
+
|
|
49
|
+
if "interpolation" not in kwargs:
|
|
50
|
+
params = inspect.signature(data_resampler).parameters
|
|
51
|
+
kwargs["interpolation"] = params["interpolation"].default
|
|
45
52
|
interpolation = kwargs["interpolation"]
|
|
46
53
|
|
|
47
54
|
input_size = np.prod(non_slice_dims_shape) * dtype.itemsize
|
|
@@ -62,7 +69,9 @@ def _calc_output_dim_sino_360_to_180(
|
|
|
62
69
|
non_slice_dims_shape: Tuple[int, int],
|
|
63
70
|
**kwargs,
|
|
64
71
|
) -> Tuple[int, int]:
|
|
65
|
-
|
|
72
|
+
if "overlap" not in kwargs:
|
|
73
|
+
params = inspect.signature(sino_360_to_180).parameters
|
|
74
|
+
kwargs["overlap"] = params["overlap"].default
|
|
66
75
|
overlap: float = kwargs["overlap"]
|
|
67
76
|
|
|
68
77
|
original_sino_width = non_slice_dims_shape[1]
|
|
@@ -75,7 +84,9 @@ def _calc_memory_bytes_sino_360_to_180(
|
|
|
75
84
|
dtype: np.dtype,
|
|
76
85
|
**kwargs,
|
|
77
86
|
) -> Tuple[int, int]:
|
|
78
|
-
|
|
87
|
+
if "overlap" not in kwargs:
|
|
88
|
+
params = inspect.signature(sino_360_to_180).parameters
|
|
89
|
+
kwargs["overlap"] = params["overlap"].default
|
|
79
90
|
overlap: float = kwargs["overlap"]
|
|
80
91
|
|
|
81
92
|
original_sino_width = non_slice_dims_shape[1]
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import inspect
|
|
1
2
|
from typing import Tuple
|
|
2
3
|
import numpy as np
|
|
3
4
|
|
|
5
|
+
from httomolibgpu.misc.rescale import rescale_to_int
|
|
6
|
+
|
|
4
7
|
__all__ = [
|
|
5
8
|
"_calc_memory_bytes_rescale_to_int",
|
|
6
9
|
]
|
|
@@ -11,6 +14,9 @@ def _calc_memory_bytes_rescale_to_int(
|
|
|
11
14
|
dtype: np.dtype,
|
|
12
15
|
**kwargs,
|
|
13
16
|
) -> Tuple[int, int]:
|
|
17
|
+
if "bits" not in kwargs:
|
|
18
|
+
params = inspect.signature(rescale_to_int).parameters
|
|
19
|
+
kwargs["bits"] = params["bits"].default
|
|
14
20
|
bits: int = kwargs["bits"]
|
|
15
21
|
if bits == 8:
|
|
16
22
|
itemsize = 1
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
# ---------------------------------------------------------------------------
|
|
21
21
|
"""Modules for memory estimation for stripe removal methods"""
|
|
22
22
|
|
|
23
|
+
import inspect
|
|
23
24
|
import math
|
|
24
25
|
from typing import Tuple
|
|
25
26
|
import numpy as np
|
|
26
27
|
|
|
27
28
|
from httomo_backends.cufft import CufftType, cufft_estimate_1d
|
|
28
|
-
from httomolibgpu.prep.stripe import remove_stripe_fw
|
|
29
|
-
|
|
29
|
+
from httomolibgpu.prep.stripe import raven_filter, remove_stripe_fw
|
|
30
30
|
|
|
31
31
|
__all__ = [
|
|
32
32
|
"_calc_memory_bytes_for_slices_remove_stripe_fw",
|
|
@@ -87,7 +87,14 @@ def _calc_memory_bytes_raven_filter(
|
|
|
87
87
|
**kwargs,
|
|
88
88
|
) -> Tuple[int, int]:
|
|
89
89
|
|
|
90
|
+
if "pad_x" not in kwargs:
|
|
91
|
+
params = inspect.signature(raven_filter).parameters
|
|
92
|
+
kwargs["pad_x"] = params["pad_x"].default
|
|
90
93
|
pad_x = kwargs["pad_x"]
|
|
94
|
+
|
|
95
|
+
if "pad_y" not in kwargs:
|
|
96
|
+
params = inspect.signature(raven_filter).parameters
|
|
97
|
+
kwargs["pad_y"] = params["pad_y"].default
|
|
91
98
|
pad_y = kwargs["pad_y"]
|
|
92
99
|
|
|
93
100
|
# Unpadded input
|
|
@@ -24,6 +24,7 @@ import math
|
|
|
24
24
|
from typing import Tuple
|
|
25
25
|
import numpy as np
|
|
26
26
|
from httomo_backends.cufft import CufftType, cufft_estimate_1d, cufft_estimate_2d
|
|
27
|
+
from httomolibgpu.recon.algorithm import ADMM3d_tomobar
|
|
27
28
|
|
|
28
29
|
__all__ = [
|
|
29
30
|
"_calc_memory_bytes_FBP3d_tomobar",
|
|
@@ -31,13 +32,16 @@ __all__ = [
|
|
|
31
32
|
"_calc_memory_bytes_SIRT3d_tomobar",
|
|
32
33
|
"_calc_memory_bytes_CGLS3d_tomobar",
|
|
33
34
|
"_calc_memory_bytes_FISTA3d_tomobar",
|
|
35
|
+
"_calc_memory_bytes_ADMM3d_tomobar",
|
|
34
36
|
"_calc_output_dim_FBP2d_astra",
|
|
35
37
|
"_calc_output_dim_FBP3d_tomobar",
|
|
36
38
|
"_calc_output_dim_LPRec3d_tomobar",
|
|
37
39
|
"_calc_output_dim_SIRT3d_tomobar",
|
|
38
40
|
"_calc_output_dim_CGLS3d_tomobar",
|
|
39
41
|
"_calc_output_dim_FISTA3d_tomobar",
|
|
42
|
+
"_calc_output_dim_ADMM3d_tomobar",
|
|
40
43
|
"_calc_padding_FISTA3d_tomobar",
|
|
44
|
+
"_calc_padding_ADMM3d_tomobar",
|
|
41
45
|
]
|
|
42
46
|
|
|
43
47
|
|
|
@@ -45,6 +49,10 @@ def _calc_padding_FISTA3d_tomobar(**kwargs) -> Tuple[int, int]:
|
|
|
45
49
|
return (5, 5)
|
|
46
50
|
|
|
47
51
|
|
|
52
|
+
def _calc_padding_ADMM3d_tomobar(**kwargs) -> Tuple[int, int]:
|
|
53
|
+
return (5, 5)
|
|
54
|
+
|
|
55
|
+
|
|
48
56
|
def __calc_output_dim_recon(non_slice_dims_shape, **kwargs):
|
|
49
57
|
"""Function to calculate output dimensions for all reconstructors.
|
|
50
58
|
The change of the dimension depends either on the user-provided "recon_size"
|
|
@@ -52,7 +60,7 @@ def __calc_output_dim_recon(non_slice_dims_shape, **kwargs):
|
|
|
52
60
|
|
|
53
61
|
"""
|
|
54
62
|
DetectorsLengthH = non_slice_dims_shape[1]
|
|
55
|
-
recon_size = kwargs
|
|
63
|
+
recon_size = kwargs.get("recon_size", None)
|
|
56
64
|
if recon_size is None:
|
|
57
65
|
recon_size = DetectorsLengthH
|
|
58
66
|
output_dims = (recon_size, recon_size)
|
|
@@ -83,6 +91,10 @@ def _calc_output_dim_FISTA3d_tomobar(non_slice_dims_shape, **kwargs):
|
|
|
83
91
|
return __calc_output_dim_recon(non_slice_dims_shape, **kwargs)
|
|
84
92
|
|
|
85
93
|
|
|
94
|
+
def _calc_output_dim_ADMM3d_tomobar(non_slice_dims_shape, **kwargs):
|
|
95
|
+
return __calc_output_dim_recon(non_slice_dims_shape, **kwargs)
|
|
96
|
+
|
|
97
|
+
|
|
86
98
|
def _calc_memory_bytes_FBP3d_tomobar(
|
|
87
99
|
non_slice_dims_shape: Tuple[int, int],
|
|
88
100
|
dtype: np.dtype,
|
|
@@ -604,6 +616,58 @@ def _calc_memory_bytes_FISTA3d_tomobar(
|
|
|
604
616
|
return (tot_memory_bytes, 0)
|
|
605
617
|
|
|
606
618
|
|
|
619
|
+
def _calc_memory_bytes_ADMM3d_tomobar(
|
|
620
|
+
non_slice_dims_shape: Tuple[int, int],
|
|
621
|
+
dtype: np.dtype,
|
|
622
|
+
**kwargs,
|
|
623
|
+
) -> Tuple[int, int]:
|
|
624
|
+
detector_pad = 0
|
|
625
|
+
if "detector_pad" in kwargs:
|
|
626
|
+
detector_pad = kwargs["detector_pad"]
|
|
627
|
+
if detector_pad is True:
|
|
628
|
+
detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
|
|
629
|
+
elif detector_pad is False:
|
|
630
|
+
detector_pad = 0
|
|
631
|
+
|
|
632
|
+
anglesnum = non_slice_dims_shape[0]
|
|
633
|
+
DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
|
|
634
|
+
|
|
635
|
+
# calculate the output shape
|
|
636
|
+
output_dims = _calc_output_dim_FISTA3d_tomobar(non_slice_dims_shape, **kwargs)
|
|
637
|
+
recon_data_size_original = (
|
|
638
|
+
np.prod(output_dims) * dtype.itemsize
|
|
639
|
+
) # recon user-defined size
|
|
640
|
+
|
|
641
|
+
in_data_siz_pad = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
|
|
642
|
+
output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
|
|
643
|
+
|
|
644
|
+
out_data_size = np.prod(output_dims_larger_grid) * dtype.itemsize
|
|
645
|
+
x0 = out_data_size
|
|
646
|
+
x = out_data_size
|
|
647
|
+
z = out_data_size
|
|
648
|
+
u = out_data_size
|
|
649
|
+
grad_data = out_data_size
|
|
650
|
+
grad_admm = out_data_size
|
|
651
|
+
arithmetic = 3 * out_data_size
|
|
652
|
+
|
|
653
|
+
admm_part = (
|
|
654
|
+
recon_data_size_original
|
|
655
|
+
+ in_data_siz_pad
|
|
656
|
+
+ x0
|
|
657
|
+
+ x
|
|
658
|
+
+ z
|
|
659
|
+
+ u
|
|
660
|
+
+ grad_data
|
|
661
|
+
+ grad_admm
|
|
662
|
+
+ out_data_size
|
|
663
|
+
+ arithmetic
|
|
664
|
+
)
|
|
665
|
+
regul_part = 8 * np.prod(output_dims_larger_grid) * dtype.itemsize
|
|
666
|
+
|
|
667
|
+
tot_memory_bytes = int(admm_part + regul_part)
|
|
668
|
+
return (tot_memory_bytes, 0)
|
|
669
|
+
|
|
670
|
+
|
|
607
671
|
def __estimate_detectorHoriz_padding(detX_size) -> int:
|
|
608
672
|
det_half = detX_size // 2
|
|
609
673
|
padded_value_exact = int(np.sqrt(2 * (det_half**2))) - det_half
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
- method: ADMM3d_tomobar
|
|
2
|
+
module_path: httomolibgpu.recon.algorithm
|
|
3
|
+
parameters:
|
|
4
|
+
center: ${{centering.side_outputs.centre_of_rotation}}
|
|
5
|
+
detector_pad: false
|
|
6
|
+
recon_size: null
|
|
7
|
+
recon_mask_radius: 0.95
|
|
8
|
+
iterations: 3
|
|
9
|
+
subsets_number: 24
|
|
10
|
+
initialisation: FBP
|
|
11
|
+
ADMM_rho_const: 1.0
|
|
12
|
+
ADMM_relax_par: 1.7
|
|
13
|
+
regularisation_type: PD_TV
|
|
14
|
+
regularisation_parameter: 0.0025
|
|
15
|
+
regularisation_iterations: 40
|
|
16
|
+
regularisation_half_precision: true
|
|
17
|
+
nonnegativity: false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: httomo-backends
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Supplementary files for HTTomo backends.
|
|
5
5
|
Author: Garry ODonnell, Jacob Williamson
|
|
6
6
|
Author-email: Daniil Kazantsev <daniil.kazantsev@diamond.ac.uk>, Yousef Moazzam <yousef.moazzam@diamond.ac.uk>, Jessica Verschoyle <jessica.verschoyle@diamond.ac.uk>, Naman Gera <naman.gera@diamond.ac.uk>, scientificsoftware@diamond.ac.uk
|
|
@@ -88,6 +88,7 @@ httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_
|
|
|
88
88
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_based_sorting.yaml
|
|
89
89
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_fw.yaml
|
|
90
90
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_ti.yaml
|
|
91
|
+
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/ADMM3d_tomobar.yaml
|
|
91
92
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml
|
|
92
93
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml
|
|
93
94
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml
|
|
@@ -32,9 +32,11 @@ from httomolibgpu.recon.algorithm import (
|
|
|
32
32
|
LPRec3d_tomobar,
|
|
33
33
|
CGLS3d_tomobar,
|
|
34
34
|
FISTA3d_tomobar,
|
|
35
|
+
ADMM3d_tomobar,
|
|
35
36
|
)
|
|
36
37
|
from httomolibgpu.misc.rescale import rescale_to_int
|
|
37
38
|
|
|
39
|
+
from httomo_backends.methods_database.packages.backends.httomolibgpu.supporting_funcs.misc.corr import *
|
|
38
40
|
from httomo_backends.methods_database.packages.backends.httomolibgpu.supporting_funcs.misc.morph import *
|
|
39
41
|
from httomo_backends.methods_database.packages.backends.httomolibgpu.supporting_funcs.prep.phase import *
|
|
40
42
|
from httomo_backends.methods_database.packages.backends.httomolibgpu.supporting_funcs.prep.stripe import *
|
|
@@ -43,7 +45,6 @@ from httomo_backends.methods_database.packages.backends.httomolibgpu.supporting_
|
|
|
43
45
|
from httomo_backends.methods_database.packages.backends.httomolibgpu.supporting_funcs.misc.rescale import *
|
|
44
46
|
from httomo_backends.methods_database.packages.backends.httomolibgpu.supporting_funcs.prep.normalize import *
|
|
45
47
|
|
|
46
|
-
|
|
47
48
|
module_mem_path = "httomo.methods_database.packages.external."
|
|
48
49
|
|
|
49
50
|
|
|
@@ -99,7 +100,7 @@ def test_dark_flat_field_correction_memoryhook(
|
|
|
99
100
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
100
101
|
|
|
101
102
|
# now we estimate how much of the total memory required for this data
|
|
102
|
-
|
|
103
|
+
estimated_memory_bytes, subtract_bytes = (
|
|
103
104
|
_calc_memory_bytes_dark_flat_field_correction(data.shape[1:], dtype=data.dtype)
|
|
104
105
|
)
|
|
105
106
|
|
|
@@ -430,7 +431,7 @@ def test_remove_stripe_ti_memoryhook(slices, ensure_clean_memory):
|
|
|
430
431
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
431
432
|
|
|
432
433
|
# now we estimate how much of the total memory required for this data
|
|
433
|
-
|
|
434
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_remove_stripe_ti(
|
|
434
435
|
(dim_x, dim_y), dtype=np.float32()
|
|
435
436
|
)
|
|
436
437
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -494,7 +495,7 @@ def test_raven_filter_memoryhook(projections, ensure_clean_memory):
|
|
|
494
495
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
495
496
|
|
|
496
497
|
# now we estimate how much of the total memory required for this data
|
|
497
|
-
|
|
498
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_raven_filter(
|
|
498
499
|
(projections, horiz_det), dtype=np.float32(), **kwargs
|
|
499
500
|
)
|
|
500
501
|
estimated_memory_mb = round(vert_det * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -527,7 +528,7 @@ def test_remove_all_stripe_memoryhook(angles, dim_x_slices, dim_y, ensure_clean_
|
|
|
527
528
|
max_mem_mb = round(max_mem / (1024**2), 2) # now in mbs
|
|
528
529
|
|
|
529
530
|
# now we estimate how much of the total memory required for this data
|
|
530
|
-
|
|
531
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_remove_all_stripe(
|
|
531
532
|
(angles, dim_y), dtype=np.float32()
|
|
532
533
|
)
|
|
533
534
|
estimated_memory_mb = round(dim_x_slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -565,7 +566,7 @@ def test_data_sampler_memoryhook(slices, newshape, interpolation, ensure_clean_m
|
|
|
565
566
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
566
567
|
|
|
567
568
|
# now we estimate how much of the total memory required for this data
|
|
568
|
-
|
|
569
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_data_resampler(
|
|
569
570
|
(recon_size, recon_size), dtype=np.float32(), **kwargs
|
|
570
571
|
)
|
|
571
572
|
# as this is slice-by-slice implementation we should be adding slices number
|
|
@@ -623,7 +624,7 @@ def test_recon_FBP3d_tomobar_memoryhook(
|
|
|
623
624
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
624
625
|
|
|
625
626
|
# now we estimate how much of the total memory required for this data
|
|
626
|
-
|
|
627
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_FBP3d_tomobar(
|
|
627
628
|
(projections, detectorX), dtype=np.float32(), **kwargs
|
|
628
629
|
)
|
|
629
630
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -779,7 +780,7 @@ def __test_recon_LPRec3d_tomobar_memoryhook_common(
|
|
|
779
780
|
input_data_type = np.float32()
|
|
780
781
|
|
|
781
782
|
# now we estimate how much of the total memory required for this data
|
|
782
|
-
|
|
783
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_LPRec3d_tomobar(
|
|
783
784
|
non_slice_dims_shape, dtype=input_data_type, **kwargs
|
|
784
785
|
)
|
|
785
786
|
|
|
@@ -830,7 +831,7 @@ def test_recon_SIRT3d_tomobar_memoryhook(slices, recon_size_it, ensure_clean_mem
|
|
|
830
831
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
831
832
|
|
|
832
833
|
# now we estimate how much of the total memory required for this data
|
|
833
|
-
|
|
834
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_SIRT3d_tomobar(
|
|
834
835
|
(1801, 2560), dtype=np.float32(), **kwargs
|
|
835
836
|
)
|
|
836
837
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -877,7 +878,7 @@ def test_recon_SIRT3d_tomobar_autopad_memoryhook(
|
|
|
877
878
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
878
879
|
|
|
879
880
|
# now we estimate how much of the total memory required for this data
|
|
880
|
-
|
|
881
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_SIRT3d_tomobar(
|
|
881
882
|
(angles_tot, det_size), dtype=np.float32(), **kwargs
|
|
882
883
|
)
|
|
883
884
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -922,7 +923,7 @@ def test_recon_CGLS3d_tomobar_memoryhook(slices, recon_size_it, ensure_clean_mem
|
|
|
922
923
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
923
924
|
|
|
924
925
|
# now we estimate how much of the total memory required for this data
|
|
925
|
-
|
|
926
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_CGLS3d_tomobar(
|
|
926
927
|
(angles_tot, det_size), dtype=np.float32(), **kwargs
|
|
927
928
|
)
|
|
928
929
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -969,7 +970,7 @@ def test_recon_CGLS3d_tomobar_autopad_memoryhook(
|
|
|
969
970
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
970
971
|
|
|
971
972
|
# now we estimate how much of the total memory required for this data
|
|
972
|
-
|
|
973
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_CGLS3d_tomobar(
|
|
973
974
|
(angles_tot, det_size), dtype=np.float32(), **kwargs
|
|
974
975
|
)
|
|
975
976
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -1018,7 +1019,7 @@ def test_recon_FISTA3d_tomobar_nonOS_memoryhook(
|
|
|
1018
1019
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
1019
1020
|
|
|
1020
1021
|
# now we estimate how much of the total memory required for this data
|
|
1021
|
-
|
|
1022
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_FISTA3d_tomobar(
|
|
1022
1023
|
(angles_total, detX_size), dtype=np.float32(), **kwargs
|
|
1023
1024
|
)
|
|
1024
1025
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -1034,6 +1035,65 @@ def test_recon_FISTA3d_tomobar_nonOS_memoryhook(
|
|
|
1034
1035
|
assert percents_relative_maxmem <= 100
|
|
1035
1036
|
|
|
1036
1037
|
|
|
1038
|
+
@pytest.mark.cupy
|
|
1039
|
+
@pytest.mark.parametrize("slices", [3, 5])
|
|
1040
|
+
@pytest.mark.parametrize("recon_size_it", [2560])
|
|
1041
|
+
@pytest.mark.parametrize("padding", [0, 100, 200, True])
|
|
1042
|
+
@pytest.mark.parametrize("subsets", [1, 6])
|
|
1043
|
+
@pytest.mark.parametrize("initialisation", ["FBP", None])
|
|
1044
|
+
def test_recon_ADMM3d_tomobar_memoryhook(
|
|
1045
|
+
slices, recon_size_it, padding, subsets, initialisation, ensure_clean_memory
|
|
1046
|
+
):
|
|
1047
|
+
angles_total = 901
|
|
1048
|
+
detX_size = 2560
|
|
1049
|
+
data = cp.random.random_sample((angles_total, slices, detX_size), dtype=np.float32)
|
|
1050
|
+
|
|
1051
|
+
hook = MaxMemoryHook()
|
|
1052
|
+
with hook:
|
|
1053
|
+
recon_data = ADMM3d_tomobar(
|
|
1054
|
+
cp.copy(data),
|
|
1055
|
+
np.linspace(0.0 * np.pi / 180.0, 180.0 * np.pi / 180.0, data.shape[0]),
|
|
1056
|
+
center=1200,
|
|
1057
|
+
recon_size=recon_size_it,
|
|
1058
|
+
iterations=1,
|
|
1059
|
+
subsets_number=subsets,
|
|
1060
|
+
regularisation_iterations=2,
|
|
1061
|
+
nonnegativity=True,
|
|
1062
|
+
detector_pad=padding,
|
|
1063
|
+
initialisation=initialisation,
|
|
1064
|
+
)
|
|
1065
|
+
|
|
1066
|
+
# make sure estimator function is within range (80% min, 100% max)
|
|
1067
|
+
max_mem = (
|
|
1068
|
+
hook.max_mem
|
|
1069
|
+
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
1070
|
+
|
|
1071
|
+
# now we estimate how much of the total memory required for this data
|
|
1072
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_ADMM3d_tomobar(
|
|
1073
|
+
(angles_total, detX_size),
|
|
1074
|
+
dtype=np.float32(),
|
|
1075
|
+
center=1200,
|
|
1076
|
+
recon_size=recon_size_it,
|
|
1077
|
+
iterations=1,
|
|
1078
|
+
subsets_number=subsets,
|
|
1079
|
+
regularisation_iterations=2,
|
|
1080
|
+
nonnegativity=True,
|
|
1081
|
+
detector_pad=padding,
|
|
1082
|
+
initialisation=initialisation,
|
|
1083
|
+
)
|
|
1084
|
+
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
1085
|
+
max_mem -= subtract_bytes
|
|
1086
|
+
max_mem_mb = round(max_mem / (1024**2), 2)
|
|
1087
|
+
|
|
1088
|
+
# now we compare both memory estimations
|
|
1089
|
+
difference_mb = abs(estimated_memory_mb - max_mem_mb)
|
|
1090
|
+
percents_relative_maxmem = round((difference_mb / max_mem_mb) * 100)
|
|
1091
|
+
# the estimated_memory_mb should be LARGER or EQUAL to max_mem_mb
|
|
1092
|
+
# the resulting percent value should not deviate from max_mem on more than 20%
|
|
1093
|
+
assert estimated_memory_mb >= max_mem_mb
|
|
1094
|
+
assert percents_relative_maxmem <= 50
|
|
1095
|
+
|
|
1096
|
+
|
|
1037
1097
|
@pytest.mark.cupy
|
|
1038
1098
|
@pytest.mark.parametrize("slices", [3, 5])
|
|
1039
1099
|
@pytest.mark.parametrize("recon_size_it", [2560])
|
|
@@ -1066,7 +1126,7 @@ def test_recon_FISTA3d_tomobar_OS_memoryhook(
|
|
|
1066
1126
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
1067
1127
|
|
|
1068
1128
|
# now we estimate how much of the total memory required for this data
|
|
1069
|
-
|
|
1129
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_FISTA3d_tomobar(
|
|
1070
1130
|
(angles_total, detX_size), dtype=np.float32(), **kwargs
|
|
1071
1131
|
)
|
|
1072
1132
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -1105,7 +1165,7 @@ def test_rescale_to_int_memoryhook(
|
|
|
1105
1165
|
max_mem_mb = round(max_mem / (1024**2), 2)
|
|
1106
1166
|
|
|
1107
1167
|
# now we estimate how much of the total memory required for this data
|
|
1108
|
-
|
|
1168
|
+
estimated_memory_bytes, subtract_bytes = _calc_memory_bytes_rescale_to_int(
|
|
1109
1169
|
(data.shape[0], data.shape[2]), dtype=np.float32(), **kwargs
|
|
1110
1170
|
)
|
|
1111
1171
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -1140,7 +1200,7 @@ def test_sino_360_to_180_memoryhook(
|
|
|
1140
1200
|
sino_360_to_180(cp.copy(data), overlap)
|
|
1141
1201
|
|
|
1142
1202
|
# Call memory estimator to estimate memory usage
|
|
1143
|
-
|
|
1203
|
+
estimated_bytes, subtract_bytes = _calc_memory_bytes_sino_360_to_180(
|
|
1144
1204
|
non_slice_dims_shape=(shape[0], shape[2]),
|
|
1145
1205
|
dtype=np.float32(),
|
|
1146
1206
|
overlap=overlap,
|
|
@@ -1166,3 +1226,94 @@ def test_FBP2d_astra_output_dim():
|
|
|
1166
1226
|
recon_size=recon_size,
|
|
1167
1227
|
)
|
|
1168
1228
|
assert output_dims == (recon_size, recon_size)
|
|
1229
|
+
|
|
1230
|
+
|
|
1231
|
+
def test_remove_outlier_padding_calculator_fetches_default_param_value():
|
|
1232
|
+
try:
|
|
1233
|
+
_calc_padding_remove_outlier(**{})
|
|
1234
|
+
except KeyError as e:
|
|
1235
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1236
|
+
|
|
1237
|
+
|
|
1238
|
+
def test_median_filter_padding_calculator_fetches_default_param_value():
|
|
1239
|
+
try:
|
|
1240
|
+
_calc_padding_median_filter(**{})
|
|
1241
|
+
except KeyError as e:
|
|
1242
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1243
|
+
|
|
1244
|
+
|
|
1245
|
+
def test_data_resampler_memory_estimator_fetches_default_param_value():
|
|
1246
|
+
try:
|
|
1247
|
+
_calc_memory_bytes_data_resampler((2, 2), np.float32(), **{"newshape": (1, 1)})
|
|
1248
|
+
except KeyError as e:
|
|
1249
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1250
|
+
|
|
1251
|
+
|
|
1252
|
+
def test_sino_360_to_180_output_dims_calculator_fetches_default_param_value():
|
|
1253
|
+
try:
|
|
1254
|
+
_calc_output_dim_sino_360_to_180((1, 1), **{})
|
|
1255
|
+
except KeyError as e:
|
|
1256
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
def test_sino_360_to_180_memory_estimator_fetches_default_param_value():
|
|
1260
|
+
try:
|
|
1261
|
+
_calc_memory_bytes_sino_360_to_180((1, 1), np.float32(), **{})
|
|
1262
|
+
except KeyError as e:
|
|
1263
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
def test_rescale_to_int_memory_estimator_fetches_default_param_value():
|
|
1267
|
+
try:
|
|
1268
|
+
_calc_memory_bytes_rescale_to_int((1, 1), np.float32(), **{})
|
|
1269
|
+
except KeyError as e:
|
|
1270
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1271
|
+
|
|
1272
|
+
|
|
1273
|
+
def test_raven_filter_memory_estimator_fetches_default_param_value():
|
|
1274
|
+
try:
|
|
1275
|
+
_calc_memory_bytes_raven_filter((1, 1), np.float32(), **{})
|
|
1276
|
+
except KeyError as e:
|
|
1277
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1278
|
+
|
|
1279
|
+
|
|
1280
|
+
def test_FBP2d_astra_output_dims_calculator_fetches_default_param_value():
|
|
1281
|
+
try:
|
|
1282
|
+
_calc_output_dim_FBP2d_astra((1, 1), **{})
|
|
1283
|
+
except KeyError as e:
|
|
1284
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1285
|
+
|
|
1286
|
+
|
|
1287
|
+
def test_FBP3d_tomobar_output_dims_calculator_fetches_default_param_value():
|
|
1288
|
+
try:
|
|
1289
|
+
_calc_output_dim_FBP3d_tomobar((1, 1), **{})
|
|
1290
|
+
except KeyError as e:
|
|
1291
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1292
|
+
|
|
1293
|
+
|
|
1294
|
+
def test_LPRec3d_tomobar_output_dims_calculator_fetches_default_param_value():
|
|
1295
|
+
try:
|
|
1296
|
+
_calc_output_dim_LPRec3d_tomobar((1, 1), **{})
|
|
1297
|
+
except KeyError as e:
|
|
1298
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1299
|
+
|
|
1300
|
+
|
|
1301
|
+
def test_SIRT3d_tomobar_output_dims_calculator_fetches_default_param_value():
|
|
1302
|
+
try:
|
|
1303
|
+
_calc_output_dim_SIRT3d_tomobar((1, 1), **{})
|
|
1304
|
+
except KeyError as e:
|
|
1305
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1306
|
+
|
|
1307
|
+
|
|
1308
|
+
def test_CGLS3d_tomobar_output_dims_calculator_fetches_default_param_value():
|
|
1309
|
+
try:
|
|
1310
|
+
_calc_output_dim_CGLS3d_tomobar((1, 1), **{})
|
|
1311
|
+
except KeyError as e:
|
|
1312
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
1313
|
+
|
|
1314
|
+
|
|
1315
|
+
def test_FISTA3d_tomobar_output_dims_calculator_fetches_default_param_value():
|
|
1316
|
+
try:
|
|
1317
|
+
_calc_output_dim_FISTA3d_tomobar((1, 1), **{})
|
|
1318
|
+
except KeyError as e:
|
|
1319
|
+
pytest.fail(f"Failed to get default value for {e} parameter")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|