Bases: SampleSerializer[SerializedSampleBlock]
flowchart TD
bioimageio.core.remote_backends.gradio.serializer.GradioSampleSerializer[GradioSampleSerializer]
bioimageio.core._sample_serializer.SampleSerializer[SampleSerializer]
bioimageio.core._sample_serializer.SampleSerializer --> bioimageio.core.remote_backends.gradio.serializer.GradioSampleSerializer
click bioimageio.core.remote_backends.gradio.serializer.GradioSampleSerializer href "" "bioimageio.core.remote_backends.gradio.serializer.GradioSampleSerializer"
click bioimageio.core._sample_serializer.SampleSerializer href "" "bioimageio.core._sample_serializer.SampleSerializer"
Methods:
deserialize_sample
classmethod
deserialize_sample(serialized: Iterable[SerializedSampleBlockType], fill_value: float = float('nan')) -> Sample
Source code in src/bioimageio/core/_sample_serializer.py
29
30
31
32
33
34
35
36
37 | @classmethod
def deserialize_sample(
cls,
serialized: Iterable[SerializedSampleBlockType],
fill_value: float = float("nan"),
) -> Sample:
return Sample.from_blocks(
(cls.deserialize_sample_block(s) for s in serialized), fill_value=fill_value
)
|
deserialize_sample_block
staticmethod
Deserialize a sample block into a new sample or merge it into output_sample if provided.
Source code in src/bioimageio/core/remote_backends/gradio/serializer.py
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 | @staticmethod
def deserialize_sample_block(serialized: SerializedSampleBlock) -> SampleBlock:
deserializable_sample = _SerializableSampleBlock.model_validate(serialized)
sample_meta = deserializable_sample.meta
members = {
k: Tensor.from_numpy(
np.load(v if isinstance(v, Path) else v.path),
dims=list(sample_meta.shape[k]),
)
for k, v in deserializable_sample.data.items()
}
return SampleBlock.from_meta(
sample_meta,
data=members,
stat=load_stat(deserializable_sample.serialized_stat),
)
|
serialize_sample
classmethod
serialize_sample(sample: Sample) -> Tuple[SerializedSampleBlockType]
Serialize a sample as a single block
Source code in src/bioimageio/core/_sample_serializer.py
| @classmethod
def serialize_sample(
cls,
sample: Sample,
) -> Tuple[SerializedSampleBlockType]:
"""Serialize a sample as a single block"""
return (cls.serialize_sample_block(sample.as_single_block()),)
|
serialize_sample_block
staticmethod
Source code in src/bioimageio/core/remote_backends/gradio/serializer.py
43
44
45
46
47
48
49
50
51
52
53
54
55 | @staticmethod
def serialize_sample_block(sample_block: SampleBlock) -> SerializedSampleBlock:
handled_members: Dict[MemberId, _SerializableBlock] = {}
for m, t in sample_block.members.items():
handled_members[m] = _SerializableBlock.from_tensor(t)
serializable = _SerializableSampleBlock(
data=handled_members,
meta=sample_block.get_meta(),
serialized_stat=serialize_stat(sample_block.stat),
)
serialized = serializable.model_dump(mode="json")
return serialized
|
serialize_sample_blockwise
serialize_sample_blockwise(sample: Sample, *, model: v0_5.ModelDescr, blocksize_parameter: int, batch_size: int = 1) -> Iterable[SerializedSampleBlockType]
Split a sample into blocks according to the model's input specifications and blocksize_parameter and serialize each block.
Source code in src/bioimageio/core/_sample_serializer.py
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 | def serialize_sample_blockwise(
self,
sample: Sample,
*,
model: v0_5.ModelDescr,
blocksize_parameter: int,
batch_size: int = 1,
) -> Iterable[SerializedSampleBlockType]:
"""Split a sample into blocks according to the model's input specifications and `blocksize_parameter` and serialize each block."""
_n_blocks, blocks = split_sample_into_blocks_for_model(
sample,
model=model,
blocksize_parameter=blocksize_parameter,
batch_size=batch_size,
)
for block in blocks:
yield self.serialize_sample_block(block)
|
serialize_sample_with_fixed_blocking
classmethod
Source code in src/bioimageio/core/_sample_serializer.py
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 | @classmethod
def serialize_sample_with_fixed_blocking(
cls,
sample: Sample,
*,
block_shapes: PerMember[PerAxis[int]],
halo: PerMember[PerAxis[HaloLike]],
pad_mode: Union[PadMode, PerMember[PadMode]] = "symmetric",
) -> Iterable[SerializedSampleBlockType]:
_n_blocks, input_blocks = sample.split_into_blocks(
block_shapes=block_shapes,
halo=halo,
pad_mode=pad_mode,
)
for block in input_blocks:
yield cls.serialize_sample_block(block)
|