Skip to content

proc_setup ¤

Classes:

Name Description
PreAndPostprocessing
RequiredDatasetMeasures
RequiredMeasures
RequiredSampleMeasures

Functions:

Name Description
get_pre_and_postprocessing

Creates callables to apply pre- and postprocessing in-place to a sample

get_required_dataset_measures
get_requried_measures
get_requried_sample_measures
setup_pre_and_postprocessing

Get pre- and postprocessing operators for a model description.

Attributes:

Name Type Description
TensorDescr

TensorDescr module-attribute ¤

PreAndPostprocessing ¤

Bases: NamedTuple


              flowchart TD
              bioimageio.core.proc_setup.PreAndPostprocessing[PreAndPostprocessing]

              

              click bioimageio.core.proc_setup.PreAndPostprocessing href "" "bioimageio.core.proc_setup.PreAndPostprocessing"
            

Attributes:

Name Type Description
post List[Processing]
pre List[Processing]

post instance-attribute ¤

post: List[Processing]

pre instance-attribute ¤

pre: List[Processing]

RequiredDatasetMeasures ¤

Bases: NamedTuple


              flowchart TD
              bioimageio.core.proc_setup.RequiredDatasetMeasures[RequiredDatasetMeasures]

              

              click bioimageio.core.proc_setup.RequiredDatasetMeasures href "" "bioimageio.core.proc_setup.RequiredDatasetMeasures"
            

Attributes:

Name Type Description
post Set[DatasetMeasure]
pre Set[DatasetMeasure]

post instance-attribute ¤

post: Set[DatasetMeasure]

pre instance-attribute ¤

pre: Set[DatasetMeasure]

RequiredMeasures ¤

Bases: NamedTuple


              flowchart TD
              bioimageio.core.proc_setup.RequiredMeasures[RequiredMeasures]

              

              click bioimageio.core.proc_setup.RequiredMeasures href "" "bioimageio.core.proc_setup.RequiredMeasures"
            

Attributes:

Name Type Description
post Set[Measure]
pre Set[Measure]

post instance-attribute ¤

post: Set[Measure]

pre instance-attribute ¤

pre: Set[Measure]

RequiredSampleMeasures ¤

Bases: NamedTuple


              flowchart TD
              bioimageio.core.proc_setup.RequiredSampleMeasures[RequiredSampleMeasures]

              

              click bioimageio.core.proc_setup.RequiredSampleMeasures href "" "bioimageio.core.proc_setup.RequiredSampleMeasures"
            

Attributes:

Name Type Description
post Set[SampleMeasure]
pre Set[SampleMeasure]

post instance-attribute ¤

post: Set[SampleMeasure]

pre instance-attribute ¤

pre: Set[SampleMeasure]

get_pre_and_postprocessing ¤

get_pre_and_postprocessing(model: AnyModelDescr, *, dataset_for_initial_statistics: Iterable[Sample], keep_updating_initial_dataset_stats: bool = False, fixed_dataset_stats: Optional[Mapping[DatasetMeasure, MeasureValue]] = None) -> _ProcessingCallables

Creates callables to apply pre- and postprocessing in-place to a sample

Source code in src/bioimageio/core/proc_setup.py
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
def get_pre_and_postprocessing(
    model: AnyModelDescr,
    *,
    dataset_for_initial_statistics: Iterable[Sample],
    keep_updating_initial_dataset_stats: bool = False,
    fixed_dataset_stats: Optional[Mapping[DatasetMeasure, MeasureValue]] = None,
) -> _ProcessingCallables:
    """Creates callables to apply pre- and postprocessing in-place to a sample"""

    setup = setup_pre_and_postprocessing(
        model=model,
        dataset_for_initial_statistics=dataset_for_initial_statistics,
        keep_updating_initial_dataset_stats=keep_updating_initial_dataset_stats,
        fixed_dataset_stats=fixed_dataset_stats,
    )
    return _ProcessingCallables(_ApplyProcs(setup.pre), _ApplyProcs(setup.post))

get_required_dataset_measures ¤

get_required_dataset_measures(model: AnyModelDescr) -> RequiredDatasetMeasures
Source code in src/bioimageio/core/proc_setup.py
146
147
148
149
150
151
def get_required_dataset_measures(model: AnyModelDescr) -> RequiredDatasetMeasures:
    req = get_requried_measures(model)
    return RequiredDatasetMeasures(
        {m for m in req.pre if isinstance(m, DatasetMeasureBase)},
        {m for m in req.post if isinstance(m, DatasetMeasureBase)},
    )

get_requried_measures ¤

get_requried_measures(model: AnyModelDescr) -> RequiredMeasures
Source code in src/bioimageio/core/proc_setup.py
137
138
139
140
141
142
143
def get_requried_measures(model: AnyModelDescr) -> RequiredMeasures:
    pre = _get_described_procs(model.inputs)
    post = _get_described_procs(model.outputs)
    return RequiredMeasures(
        {m for proc in pre for m in proc.required_measures},
        {m for proc in post for m in proc.required_measures},
    )

get_requried_sample_measures ¤

get_requried_sample_measures(model: AnyModelDescr) -> RequiredSampleMeasures
Source code in src/bioimageio/core/proc_setup.py
154
155
156
157
158
159
def get_requried_sample_measures(model: AnyModelDescr) -> RequiredSampleMeasures:
    req = get_requried_measures(model)
    return RequiredSampleMeasures(
        {m for m in req.pre if isinstance(m, SampleMeasureBase)},
        {m for m in req.post if isinstance(m, SampleMeasureBase)},
    )

setup_pre_and_postprocessing ¤

setup_pre_and_postprocessing(model: AnyModelDescr, dataset_for_initial_statistics: Iterable[Sample], keep_updating_initial_dataset_stats: bool = False, fixed_dataset_stats: Optional[Mapping[DatasetMeasure, MeasureValue]] = None) -> PreAndPostprocessing

Get pre- and postprocessing operators for a model description.

Used in `bioimageio.core.create_prediction_pipeline

Source code in src/bioimageio/core/proc_setup.py
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
def setup_pre_and_postprocessing(
    model: AnyModelDescr,
    dataset_for_initial_statistics: Iterable[Sample],
    keep_updating_initial_dataset_stats: bool = False,
    fixed_dataset_stats: Optional[Mapping[DatasetMeasure, MeasureValue]] = None,
) -> PreAndPostprocessing:
    """Get pre- and postprocessing operators for a `model` description.

    Used in `bioimageio.core.create_prediction_pipeline
    """

    prep = _get_described_procs(model.inputs)
    post = _get_described_procs(model.outputs)
    required = {m for p in chain(prep, post) for m in p.required_measures}
    missing_dataset_stats = {
        m
        for m in required
        if fixed_dataset_stats is None or m not in fixed_dataset_stats
    }
    if missing_dataset_stats:
        initial_stats_calc = StatsCalculator(missing_dataset_stats)
        for sample in dataset_for_initial_statistics:
            initial_stats_calc.update(sample)

        initial_stats = initial_stats_calc.finalize()
        prep.insert(
            0,
            UpdateStats(
                StatsCalculator(required, initial_stats),
                keep_updating_initial_dataset_stats=keep_updating_initial_dataset_stats,
            ),
        )

    if fixed_dataset_stats:
        prep.insert(0, AddKnownDatasetStats(fixed_dataset_stats))

    return PreAndPostprocessing(prep, post)