v0_5
¤
-
API Reference
model
Classes:
| Name | Description |
|---|---|
ArchitectureFromFileDescr |
|
ArchitectureFromLibraryDescr |
|
Author |
|
AxisBase |
|
AxisId |
|
BadgeDescr |
A custom badge |
BatchAxis |
|
BiasRisksLimitations |
Known biases, risks, technical limitations, and recommendations for model use. |
BinarizeAlongAxisKwargs |
key word arguments for BinarizeDescr |
BinarizeDescr |
Binarize the tensor with a fixed threshold. |
BinarizeKwargs |
key word arguments for BinarizeDescr |
BioimageioConfig |
|
CallableFromDepencency |
|
CellposeFlowDynamicsDescr |
Cellpose flow dynamics postprocessing as described in: |
CellposeFlowDynamicsKwargs |
key word arguments for CellposeFlowDynamicsDescr |
ChannelAxis |
|
CiteEntry |
A citation that should be referenced in work using this resource. |
ClipDescr |
Set tensor values below min to min and above max to max. |
ClipKwargs |
key word arguments for ClipDescr |
Config |
|
ConstantPadding |
|
ContinuousReproducibilityTolerance |
|
CustomProcessingDescr |
Custom (post)processing op — source file shipped inline with the model. |
DataDependentSize |
|
DatasetDescr |
A bioimage.io dataset resource description file (dataset RDF) describes a dataset relevant to bioimage |
DatasetId |
|
Datetime |
Timestamp in ISO 8601 format |
DeprecatedLicenseId |
|
DiscreteReproducibilityTolerance |
|
Doi |
A digital object identifier, see https://www.doi.org/ |
EdgePadding |
|
EnsureDtypeDescr |
Cast the tensor data type to |
EnsureDtypeKwargs |
key word arguments for EnsureDtypeDescr |
EnvironmentalImpact |
Environmental considerations for model training and deployment. |
Evaluation |
|
FileDescr |
A file description |
FixedZeroMeanUnitVarianceAlongAxisKwargs |
key word arguments for FixedZeroMeanUnitVarianceDescr |
FixedZeroMeanUnitVarianceDescr |
Subtract a given mean and divide by the standard deviation. |
FixedZeroMeanUnitVarianceKwargs |
key word arguments for FixedZeroMeanUnitVarianceDescr |
HttpUrl |
A URL with the HTTP or HTTPS scheme. |
Identifier |
|
IndexAxisBase |
|
IndexInputAxis |
|
IndexOutputAxis |
|
InputTensorDescr |
|
IntervalOrRatioDataDescr |
|
KerasHdf5WeightsDescr |
|
KerasV3WeightsDescr |
|
LicenseId |
|
LinkedDataset |
Reference to a bioimage.io dataset. |
LinkedModel |
Reference to a bioimage.io model. |
LinkedResource |
Reference to a bioimage.io resource |
Maintainer |
|
ModelDescr |
Specification of the fields used in a bioimage.io-compliant RDF to describe AI models with pretrained weights. |
ModelId |
|
NominalOrOrdinalDataDescr |
|
OnnxWeightsDescr |
|
OrcidId |
An ORCID identifier, see https://orcid.org/ |
OutputTensorDescr |
|
ParameterizedSize |
Describes a range of valid tensor axis sizes as |
PytorchStateDictWeightsDescr |
|
ReflectPadding |
|
RelativeFilePath |
A path relative to the |
ReproducibilityTolerance |
|
ResourceId |
|
RunMode |
|
ScaleLinearAlongAxisKwargs |
Key word arguments for ScaleLinearDescr |
ScaleLinearDescr |
Fixed linear scaling. |
ScaleLinearKwargs |
Key word arguments for ScaleLinearDescr |
ScaleMeanVarianceDescr |
Scale a tensor's data distribution to match another tensor's mean/std. |
ScaleMeanVarianceKwargs |
key word arguments for ScaleMeanVarianceKwargs |
ScaleRangeDescr |
Scale with percentiles. |
ScaleRangeKwargs |
key word arguments for ScaleRangeDescr |
Sha256 |
A SHA-256 hash value |
SiUnit |
An SI unit |
SigmoidDescr |
The logistic sigmoid function, a.k.a. expit function. |
SizeReference |
A tensor axis size (extent in pixels/frames) defined in relation to a reference axis. |
SoftmaxDescr |
The softmax function. |
SoftmaxKwargs |
key word arguments for SoftmaxDescr |
SpaceAxisBase |
|
SpaceInputAxis |
|
SpaceOutputAxis |
|
SpaceOutputAxisWithHalo |
|
StardistPostprocessingDescr |
Stardist postprocessing including non-maximum suppression and converting polygon representations to instance labels |
StardistPostprocessingKwargs2D |
|
StardistPostprocessingKwargs3D |
|
SymmetricPadding |
|
TensorDescrBase |
|
TensorId |
|
TensorflowJsWeightsDescr |
|
TensorflowSavedModelBundleWeightsDescr |
|
TimeAxisBase |
|
TimeInputAxis |
|
TimeOutputAxis |
|
TimeOutputAxisWithHalo |
|
TorchscriptWeightsDescr |
|
TrainingDetails |
|
Uploader |
|
Version |
wraps a packaging.version.Version instance for validation in pydantic models |
WeightsDescr |
|
WeightsEntryDescrBase |
|
WithHalo |
|
ZeroMeanUnitVarianceDescr |
Subtract mean and divide by variance. |
ZeroMeanUnitVarianceKwargs |
key word arguments for ZeroMeanUnitVarianceDescr |
Functions:
| Name | Description |
|---|---|
convert_axes |
|
generate_covers |
|
get_halos |
Get all input and output halos from tensor descriptions. |
validate_tensors |
Validate all inputs (and optionally output tensors) against their tensor descriptions. |
Attributes:
ANY_AXIS_TYPES
module-attribute
¤
ANY_AXIS_TYPES = INPUT_AXIS_TYPES + OUTPUT_AXIS_TYPES
intended for isinstance comparisons in py<3.10
AbsoluteTolerance
module-attribute
¤
AbsoluteTolerance = Annotated[
float, annotated_types.Interval(ge=0)
]
BioimageioYamlContent
module-attribute
¤
BioimageioYamlContent = Dict[str, YamlValue]
-
API Reference
spec
FileDescr_dependencies
module-attribute
¤
FileDescr_dependencies = Annotated[
FileDescr_package,
WithSuffix((".yaml", ".yml"), case_sensitive=True),
Field(examples=[{"source": "environment.yaml"}]),
]
FileDescr_external_data
module-attribute
¤
FileDescr_external_data = Annotated[
FileDescr_package,
WithSuffix(".data", case_sensitive=True),
Field(examples=[{"source": "weights.onnx.data"}]),
]
INPUT_AXIS_TYPES
module-attribute
¤
INPUT_AXIS_TYPES = (
BatchAxis,
ChannelAxis,
IndexInputAxis,
TimeInputAxis,
SpaceInputAxis,
)
intended for isinstance comparisons in py<3.10
InputAxis
module-attribute
¤
InputAxis = Annotated[
_InputAxisUnion, Discriminator("type")
]
IntervalOrRatioDType
module-attribute
¤
IntervalOrRatioDType = Literal[
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
]
MismatchedElementsPerMillion
module-attribute
¤
MismatchedElementsPerMillion = Annotated[
int, annotated_types.Interval(ge=0, le=30000)
]
NominalOrOrdinalDType
module-attribute
¤
NominalOrOrdinalDType = Literal[
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool",
]
OUTPUT_AXIS_TYPES
module-attribute
¤
OUTPUT_AXIS_TYPES = (
BatchAxis,
ChannelAxis,
IndexOutputAxis,
TimeOutputAxis,
TimeOutputAxisWithHalo,
SpaceOutputAxis,
SpaceOutputAxisWithHalo,
)
intended for isinstance comparisons in py<3.10
OutputAxis
module-attribute
¤
OutputAxis = Annotated[
_OutputAxisUnion, Discriminator("type")
]
Padding
module-attribute
¤
Padding = Union[
ConstantPadding,
EdgePadding,
ReflectPadding,
SymmetricPadding,
]
ParameterizedSize_N
module-attribute
¤
ParameterizedSize_N: TypeAlias = int
Annotates an integer to calculate a concrete axis size from a ParameterizedSize.
PostprocessingDescr
module-attribute
¤
PostprocessingDescr = Annotated[
Union[
BinarizeDescr,
CellposeFlowDynamicsDescr,
ClipDescr,
CustomProcessingDescr,
EnsureDtypeDescr,
FixedZeroMeanUnitVarianceDescr,
ScaleLinearDescr,
ScaleMeanVarianceDescr,
ScaleRangeDescr,
SigmoidDescr,
SoftmaxDescr,
StardistPostprocessingDescr,
ZeroMeanUnitVarianceDescr,
],
Discriminator("id"),
]
PostprocessingId
module-attribute
¤
PostprocessingId = Literal[
"binarize",
"clip",
"custom",
"ensure_dtype",
"fixed_zero_mean_unit_variance",
"scale_linear",
"scale_mean_variance",
"scale_range",
"sigmoid",
"softmax",
"zero_mean_unit_variance",
]
PreprocessingDescr
module-attribute
¤
PreprocessingDescr = Annotated[
Union[
BinarizeDescr,
ClipDescr,
EnsureDtypeDescr,
FixedZeroMeanUnitVarianceDescr,
ScaleLinearDescr,
ScaleRangeDescr,
SigmoidDescr,
SoftmaxDescr,
ZeroMeanUnitVarianceDescr,
],
Discriminator("id"),
]
PreprocessingId
module-attribute
¤
PreprocessingId = Literal[
"binarize",
"clip",
"ensure_dtype",
"fixed_zero_mean_unit_variance",
"scale_linear",
"scale_range",
"sigmoid",
"softmax",
]
RelativeTolerance
module-attribute
¤
RelativeTolerance = Annotated[
float, annotated_types.Interval(ge=0, le=0.01)
]
SpaceUnit
module-attribute
¤
SpaceUnit = Literal[
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter",
]
Space unit compatible to the OME-Zarr axes specification 0.5
SpecificWeightsDescr
module-attribute
¤
SpecificWeightsDescr = Union[
KerasHdf5WeightsDescr,
KerasV3WeightsDescr,
OnnxWeightsDescr,
PytorchStateDictWeightsDescr,
TensorflowJsWeightsDescr,
TensorflowSavedModelBundleWeightsDescr,
TorchscriptWeightsDescr,
]
TVs
module-attribute
¤
TVs = Union[
NotEmpty[List[int]],
NotEmpty[List[float]],
NotEmpty[List[bool]],
NotEmpty[List[str]],
]
TensorDataDescr
module-attribute
¤
TensorDataDescr = Union[
NominalOrOrdinalDataDescr, IntervalOrRatioDataDescr
]
TimeUnit
module-attribute
¤
TimeUnit = Literal[
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond",
]
Time unit compatible to the OME-Zarr axes specification 0.5
VALID_COVER_IMAGE_EXTENSIONS
module-attribute
¤
VALID_COVER_IMAGE_EXTENSIONS = (
".gif",
".jpeg",
".jpg",
".png",
".svg",
)
WeightsFormat
module-attribute
¤
WeightsFormat = Literal[
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript",
]
ArchitectureFromFileDescr
pydantic-model
¤
Bases: _ArchitectureCallableDescr, FileDescr
Show JSON schema:
{
"$defs": {
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Architecture source file",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"callable": {
"description": "Identifier of the callable that returns a torch.nn.Module instance.",
"examples": [
"MyNetworkClass",
"get_my_model"
],
"minLength": 1,
"title": "Identifier",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `callable`",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"source",
"callable"
],
"title": "model.v0_5.ArchitectureFromFileDescr",
"type": "object"
}
Fields:
-
sha256(Sha256 | None) -
callable(Annotated[Identifier, Field(examples=['MyNetworkClass', 'get_my_model'])]) -
kwargs(dict[str, YamlValue]) -
source(Annotated[FileSource, AfterValidator(wo_special_file_name)])
callable
pydantic-field
¤
callable: Annotated[
Identifier,
Field(examples=["MyNetworkClass", "get_my_model"]),
]
Identifier of the callable that returns a torch.nn.Module instance.
source
pydantic-field
¤
source: Annotated[
FileSource, AfterValidator(wo_special_file_name)
]
Architecture source file
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
ArchitectureFromLibraryDescr
pydantic-model
¤
Bases: _ArchitectureCallableDescr
Show JSON schema:
{
"$defs": {
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"properties": {
"callable": {
"description": "Identifier of the callable that returns a torch.nn.Module instance.",
"examples": [
"MyNetworkClass",
"get_my_model"
],
"minLength": 1,
"title": "Identifier",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `callable`",
"title": "Kwargs",
"type": "object"
},
"import_from": {
"description": "Where to import the callable from, i.e. `from <import_from> import <callable>`",
"title": "Import From",
"type": "string"
}
},
"required": [
"callable",
"import_from"
],
"title": "model.v0_5.ArchitectureFromLibraryDescr",
"type": "object"
}
Fields:
-
callable(Annotated[Identifier, Field(examples=['MyNetworkClass', 'get_my_model'])]) -
kwargs(dict[str, YamlValue]) -
import_from(str)
callable
pydantic-field
¤
callable: Annotated[
Identifier,
Field(examples=["MyNetworkClass", "get_my_model"]),
]
Identifier of the callable that returns a torch.nn.Module instance.
import_from
pydantic-field
¤
import_from: str
Where to import the callable from, i.e. from <import_from> import <callable>
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
Author
pydantic-model
¤
Bases: _Author_v0_2
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
}
Fields:
-
affiliation(str | None) -
email(EmailStr | None) -
orcid(Annotated[OrcidId | None, Field(examples=['0000-0001-2345-6789'])]) -
name(Annotated[str, Predicate(_has_no_slash)]) -
github_user(str | None)
Validators:
-
_validate_github_user→github_user
orcid
pydantic-field
¤
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
AxisBase
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"id": {
"description": "An axis id unique across all axes of one tensor.",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
}
},
"required": [
"id"
],
"title": "model.v0_5.AxisBase",
"type": "object"
}
Fields:
-
id(AxisId) -
description(Annotated[str, MaxLen(128)])
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
AxisId
¤
Bases: LowerCaseIdentifier
flowchart TD
bioimageio.spec.model.v0_5.AxisId[AxisId]
bioimageio.spec._internal.types.LowerCaseIdentifier[LowerCaseIdentifier]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.types.LowerCaseIdentifier --> bioimageio.spec.model.v0_5.AxisId
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec._internal.types.LowerCaseIdentifier
click bioimageio.spec.model.v0_5.AxisId href "" "bioimageio.spec.model.v0_5.AxisId"
click bioimageio.spec._internal.types.LowerCaseIdentifier href "" "bioimageio.spec._internal.types.LowerCaseIdentifier"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
root_model: type[RootModel[Any]] = RootModel[
Annotated[
NotEmpty[str],
AfterValidator(_normalize_axis_id),
MaxLen(16),
AfterValidator(validate_identifier),
AfterValidator(validate_is_not_keyword),
]
]
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
BadgeDescr
pydantic-model
¤
Bases: Node
A custom badge
Show JSON schema:
{
"$defs": {
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
}
},
"additionalProperties": false,
"description": "A custom badge",
"properties": {
"label": {
"description": "badge label to display on hover",
"examples": [
"Open in Colab"
],
"title": "Label",
"type": "string"
},
"icon": {
"anyOf": [
{
"format": "file-path",
"title": "FilePath",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "badge icon (included in bioimage.io package if not a URL)",
"examples": [
"https://colab.research.google.com/assets/colab-badge.svg"
],
"title": "Icon"
},
"url": {
"description": "target URL",
"examples": [
"https://colab.research.google.com/github/HenriquesLab/ZeroCostDL4Mic/blob/master/Colab_notebooks/U-net_2D_ZeroCostDL4Mic.ipynb"
],
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
}
},
"required": [
"label",
"url"
],
"title": "generic.v0_2.BadgeDescr",
"type": "object"
}
Fields:
-
label(Annotated[str, Field(examples=['Open in Colab'])]) -
icon(Annotated[Annotated[FilePath | RelativeFilePath, AfterValidator(wo_special_file_name), include_in_package] | HttpUrl | pydantic.HttpUrl | None, Field(examples=['https://colab.research.google.com/assets/colab-badge.svg'])]) -
url(Annotated[HttpUrl, Field(examples=['https://colab.research.google.com/github/HenriquesLab/ZeroCostDL4Mic/blob/master/Colab_notebooks/U-net_2D_ZeroCostDL4Mic.ipynb'])])
icon
pydantic-field
¤
icon: Annotated[
Annotated[
FilePath | RelativeFilePath,
AfterValidator(wo_special_file_name),
include_in_package,
]
| HttpUrl
| pydantic.HttpUrl
| None,
Field(
examples=[
"https://colab.research.google.com/assets/colab-badge.svg"
]
),
] = None
badge icon (included in bioimage.io package if not a URL)
label
pydantic-field
¤
label: Annotated[str, Field(examples=['Open in Colab'])]
badge label to display on hover
url
pydantic-field
¤
url: Annotated[
HttpUrl,
Field(
examples=[
"https://colab.research.google.com/github/HenriquesLab/ZeroCostDL4Mic/blob/master/Colab_notebooks/U-net_2D_ZeroCostDL4Mic.ipynb"
]
),
]
target URL
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
BatchAxis
pydantic-model
¤
Bases: AxisBase
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"id": {
"default": "batch",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "batch",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"const": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The batch size may be fixed to 1,\notherwise (the default) it may be chosen arbitrarily depending on available memory",
"title": "Size"
}
},
"required": [
"type"
],
"title": "model.v0_5.BatchAxis",
"type": "object"
}
Fields:
-
description(Annotated[str, MaxLen(128)]) -
type(Literal['batch']) -
id(Annotated[AxisId, Predicate(_is_batch)]) -
size(Literal[1] | None)
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
id: Annotated[AxisId, Predicate(_is_batch)] = BATCH_AXIS_ID
An axis id unique across all axes of one tensor.
size
pydantic-field
¤
size: Literal[1] | None = None
The batch size may be fixed to 1, otherwise (the default) it may be chosen arbitrarily depending on available memory
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
BiasRisksLimitations
pydantic-model
¤
Bases: Node
Known biases, risks, technical limitations, and recommendations for model use.
Show JSON schema:
{
"additionalProperties": true,
"description": "Known biases, risks, technical limitations, and recommendations for model use.",
"properties": {
"known_biases": {
"default": "In general bioimage models may suffer from biases caused by:\n\n- Imaging protocol dependencies\n- Use of a specific cell type\n- Species-specific training data limitations\n\n",
"description": "Biases in training data or model behavior.",
"title": "Known Biases",
"type": "string"
},
"risks": {
"default": "Common risks in bioimage analysis include:\n\n- Erroneously assuming generalization to unseen experimental conditions\n- Trusting (overconfident) model outputs without validation\n- Misinterpretation of results\n\n",
"description": "Potential risks in the context of bioimage analysis.",
"title": "Risks",
"type": "string"
},
"limitations": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Technical limitations and failure modes.",
"title": "Limitations"
},
"recommendations": {
"default": "Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model.",
"description": "Mitigation strategies regarding `known_biases`, `risks`, and `limitations`, as well as applicable best practices.\n\nConsider:\n- How to use a validation dataset?\n- How to manually validate?\n- Feasibility of domain adaptation for different experimental setups?",
"title": "Recommendations",
"type": "string"
}
},
"title": "model.v0_5.BiasRisksLimitations",
"type": "object"
}
Fields:
-
known_biases(str) -
risks(str) -
limitations(str | None) -
recommendations(str)
limitations
pydantic-field
¤
limitations: str | None = None
Technical limitations and failure modes.
recommendations
pydantic-field
¤
recommendations: str = "Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model."
Mitigation strategies regarding known_biases, risks, and limitations, as well as applicable best practices.
Consider: - How to use a validation dataset? - How to manually validate? - Feasibility of domain adaptation for different experimental setups?
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
format_md
¤
format_md() -> str
Source code in src/bioimageio/spec/model/v0_5.py
3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
BinarizeAlongAxisKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for BinarizeDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold values along `axis`",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Threshold",
"type": "array"
},
"axis": {
"description": "The `threshold` axis",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"threshold",
"axis"
],
"title": "model.v0_5.BinarizeAlongAxisKwargs",
"type": "object"
}
Fields:
-
threshold(NotEmpty[list[float]]) -
axis(Annotated[NonBatchAxisId, Field(examples=['channel'])])
axis
pydantic-field
¤
axis: Annotated[NonBatchAxisId, Field(examples=["channel"])]
The threshold axis
threshold
pydantic-field
¤
threshold: NotEmpty[list[float]]
The fixed threshold values along axis
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
BinarizeDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Binarize the tensor with a fixed threshold.
Values above BinarizeKwargs.threshold/BinarizeAlongAxisKwargs.threshold will be set to one, values below the threshold to zero.
Examples:
- in YAML
postprocessing: - id: binarize kwargs: axis: 'channel' threshold: [0.25, 0.5, 0.75] -
in Python:
>>> postprocessing = [BinarizeDescr( ... kwargs=BinarizeAlongAxisKwargs( ... axis=AxisId('channel'), ... threshold=[0.25, 0.5, 0.75], ... ) ... )]
Show JSON schema:
{
"$defs": {
"BinarizeAlongAxisKwargs": {
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold values along `axis`",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Threshold",
"type": "array"
},
"axis": {
"description": "The `threshold` axis",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"threshold",
"axis"
],
"title": "model.v0_5.BinarizeAlongAxisKwargs",
"type": "object"
},
"BinarizeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold",
"title": "Threshold",
"type": "number"
}
},
"required": [
"threshold"
],
"title": "model.v0_5.BinarizeKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "Binarize the tensor with a fixed threshold.\n\nValues above [BinarizeKwargs.threshold][]/[BinarizeAlongAxisKwargs.threshold][]\nwill be set to one, values below the threshold to zero.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: binarize\n kwargs:\n axis: 'channel'\n threshold: [0.25, 0.5, 0.75]\n ```\n- in Python:\n\n >>> postprocessing = [BinarizeDescr(\n ... kwargs=BinarizeAlongAxisKwargs(\n ... axis=AxisId('channel'),\n ... threshold=[0.25, 0.5, 0.75],\n ... )\n ... )]",
"properties": {
"id": {
"const": "binarize",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/BinarizeKwargs"
},
{
"$ref": "#/$defs/BinarizeAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.BinarizeDescr",
"type": "object"
}
Fields:
-
id(Literal['binarize']) -
kwargs(BinarizeKwargs | BinarizeAlongAxisKwargs)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
BinarizeKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for BinarizeDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold",
"title": "Threshold",
"type": "number"
}
},
"required": [
"threshold"
],
"title": "model.v0_5.BinarizeKwargs",
"type": "object"
}
Fields:
-
threshold(float)
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
BioimageioConfig
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"$defs": {
"BiasRisksLimitations": {
"additionalProperties": true,
"description": "Known biases, risks, technical limitations, and recommendations for model use.",
"properties": {
"known_biases": {
"default": "In general bioimage models may suffer from biases caused by:\n\n- Imaging protocol dependencies\n- Use of a specific cell type\n- Species-specific training data limitations\n\n",
"description": "Biases in training data or model behavior.",
"title": "Known Biases",
"type": "string"
},
"risks": {
"default": "Common risks in bioimage analysis include:\n\n- Erroneously assuming generalization to unseen experimental conditions\n- Trusting (overconfident) model outputs without validation\n- Misinterpretation of results\n\n",
"description": "Potential risks in the context of bioimage analysis.",
"title": "Risks",
"type": "string"
},
"limitations": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Technical limitations and failure modes.",
"title": "Limitations"
},
"recommendations": {
"default": "Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model.",
"description": "Mitigation strategies regarding `known_biases`, `risks`, and `limitations`, as well as applicable best practices.\n\nConsider:\n- How to use a validation dataset?\n- How to manually validate?\n- Feasibility of domain adaptation for different experimental setups?",
"title": "Recommendations",
"type": "string"
}
},
"title": "model.v0_5.BiasRisksLimitations",
"type": "object"
},
"ContinuousReproducibilityTolerance": {
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 100,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"default": 0.001,
"description": "Maximum relative tolerance of reproduced test tensor.\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"maximum": 0.01,
"minimum": 0,
"title": "Relative Tolerance",
"type": "number"
},
"absolute_tolerance": {
"default": 0.001,
"description": "Maximum absolute tolerance of reproduced test tensor.\n\nThe `absolute_tolerance` may not be greater than 1% of the maximum absolute value of the test tensor\n(this serves to prevent false positives in the presence of very small numbers).\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"minimum": 0,
"title": "Absolute Tolerance",
"type": "number"
},
"output_ids": {
"const": "any_continuous_output",
"default": "any_continuous_output",
"description": "Limits the output tensor IDs to all outputs of float data type.",
"title": "Output Ids",
"type": "string"
}
},
"title": "model.v0_5.ContinuousReproducibilityTolerance",
"type": "object"
},
"DiscreteReproducibilityTolerance": {
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 1000,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.\n\nNote: Increased default mismatched elements per million compared to\n[`ReproducibilityTolerance`][ReproducibilityTolerance]/[`ContinuousReproducibilityTolerance`][ContinuousReproducibilityTolerance],\nsince a single pixel mismatch can be more significant than for continuous outputs with numeric tolerance.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"const": 0,
"default": 0,
"description": "Relative tolerance does not apply to discrete outputs",
"title": "Relative Tolerance",
"type": "integer"
},
"absolute_tolerance": {
"const": 0,
"default": 0,
"description": "Absolute tolerance does not apply to discrete outputs",
"title": "Absolute Tolerance",
"type": "integer"
},
"output_ids": {
"const": "any_discrete_output",
"default": "any_discrete_output",
"description": "Limits the output tensor IDs to all outputs of integer or boolean data type.",
"title": "Output Ids",
"type": "string"
}
},
"title": "model.v0_5.DiscreteReproducibilityTolerance",
"type": "object"
},
"EnvironmentalImpact": {
"additionalProperties": true,
"description": "Environmental considerations for model training and deployment.\n\nCarbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).",
"properties": {
"hardware_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU/CPU specifications",
"title": "Hardware Type"
},
"hours_used": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total compute hours",
"title": "Hours Used"
},
"cloud_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If applicable",
"title": "Cloud Provider"
},
"compute_region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Geographic location",
"title": "Compute Region"
},
"co2_emitted": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "kg CO2 equivalent\n\nCarbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).",
"title": "Co2 Emitted"
}
},
"title": "model.v0_5.EnvironmentalImpact",
"type": "object"
},
"Evaluation": {
"additionalProperties": true,
"properties": {
"model_id": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Model being evaluated.",
"title": "Model Id"
},
"dataset_id": {
"description": "Dataset used for evaluation.",
"minLength": 1,
"title": "DatasetId",
"type": "string"
},
"dataset_source": {
"description": "Source of the dataset.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
"dataset_role": {
"description": "Role of the dataset used for evaluation.\n\n- `train`: dataset was (part of) the training data\n- `validation`: dataset was (part of) the validation data used during training, e.g. used for model selection or hyperparameter tuning\n- `test`: dataset was (part of) the designated test data; not used during training or validation, but acquired from the same source/distribution as training data\n- `independent`: dataset is entirely independent test data; not used during training or validation, and acquired from a different source/distribution than training data\n- `unknown`: role of the dataset is unknown; choose this if you are not certain if (a subset) of the data was seen by the model during training.",
"enum": [
"train",
"validation",
"test",
"independent",
"unknown"
],
"title": "Dataset Role",
"type": "string"
},
"sample_count": {
"description": "Number of evaluated samples.",
"title": "Sample Count",
"type": "integer"
},
"evaluation_factors": {
"description": "(Abbreviations of) each evaluation factor.\n\nEvaluation factors are criteria along which model performance is evaluated, e.g. different image conditions\nlike 'low SNR', 'high cell density', or different biological conditions like 'cell type A', 'cell type B'.\nAn 'overall' factor may be included to summarize performance across all conditions.",
"items": {
"maxLength": 16,
"type": "string"
},
"title": "Evaluation Factors",
"type": "array"
},
"evaluation_factors_long": {
"description": "Descriptions (long form) of each evaluation factor.",
"items": {
"type": "string"
},
"title": "Evaluation Factors Long",
"type": "array"
},
"metrics": {
"description": "(Abbreviations of) metrics used for evaluation.",
"items": {
"maxLength": 16,
"type": "string"
},
"title": "Metrics",
"type": "array"
},
"metrics_long": {
"description": "Description of each metric used.",
"items": {
"type": "string"
},
"title": "Metrics Long",
"type": "array"
},
"results": {
"description": "Results for each metric (rows; outer list) and each evaluation factor (columns; inner list).",
"items": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
},
"type": "array"
},
"title": "Results",
"type": "array"
},
"results_summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Interpretation of results for general audience.\n\nConsider:\n - Overall model performance\n - Comparison to existing methods\n - Limitations and areas for improvement",
"title": "Results Summary"
}
},
"required": [
"dataset_id",
"dataset_source",
"dataset_role",
"sample_count",
"evaluation_factors",
"evaluation_factors_long",
"metrics",
"metrics_long",
"results"
],
"title": "model.v0_5.Evaluation",
"type": "object"
},
"ReproducibilityTolerance": {
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 100,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"default": 0.001,
"description": "Maximum relative tolerance of reproduced test tensor.\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"maximum": 0.01,
"minimum": 0,
"title": "Relative Tolerance",
"type": "number"
},
"absolute_tolerance": {
"default": 0.001,
"description": "Maximum absolute tolerance of reproduced test tensor.\n\nThe `absolute_tolerance` may not be greater than 1% of the maximum absolute value of the test tensor\n(this serves to prevent false positives in the presence of very small numbers).\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"minimum": 0,
"title": "Absolute Tolerance",
"type": "number"
},
"output_ids": {
"default": [],
"description": "Limits the output tensor IDs these reproducibility details apply to.\n\nIf empty, the reproducibility details apply to all outputs.",
"items": {
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"title": "Output Ids",
"type": "array"
}
},
"title": "model.v0_5.ReproducibilityTolerance",
"type": "object"
},
"TrainingDetails": {
"additionalProperties": true,
"properties": {
"training_preprocessing": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Detailed image preprocessing steps during model training:\n\nMention:\n- *Normalization methods*\n- *Augmentation strategies*\n- *Resizing/resampling procedures*\n- *Artifact handling*",
"title": "Training Preprocessing"
},
"training_epochs": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of training epochs.",
"title": "Training Epochs"
},
"training_batch_size": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Batch size used in training.",
"title": "Training Batch Size"
},
"initial_learning_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Initial learning rate used in training.",
"title": "Initial Learning Rate"
},
"learning_rate_schedule": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Learning rate schedule used in training.",
"title": "Learning Rate Schedule"
},
"loss_function": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Loss function used in training, e.g. nn.MSELoss.",
"title": "Loss Function"
},
"loss_function_kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `loss_function`",
"title": "Loss Function Kwargs",
"type": "object"
},
"optimizer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "optimizer, e.g. torch.optim.Adam",
"title": "Optimizer"
},
"optimizer_kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `optimizer`",
"title": "Optimizer Kwargs",
"type": "object"
},
"regularization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Regularization techniques used during training, e.g. drop-out or weight decay.",
"title": "Regularization"
},
"training_duration": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total training duration in hours.",
"title": "Training Duration"
}
},
"title": "model.v0_5.TrainingDetails",
"type": "object"
},
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"additionalProperties": true,
"properties": {
"reproducibility_tolerance": {
"description": "Tolerances to allow when reproducing the model's test outputs\nfrom the model's test inputs.\nOnly the first entry matching tensor id and weights format is considered.\nFor defaults see [`ContinuousReproducibilityTolerance`][ContinuousReproducibilityTolerance]/[`DiscreteReproducibilityTolerance`][DiscreteReproducibilityTolerance]",
"items": {
"anyOf": [
{
"$ref": "#/$defs/ReproducibilityTolerance"
},
{
"$ref": "#/$defs/ContinuousReproducibilityTolerance"
},
{
"$ref": "#/$defs/DiscreteReproducibilityTolerance"
}
]
},
"title": "Reproducibility Tolerance",
"type": "array"
},
"funded_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Funding agency, grant number if applicable",
"title": "Funded By"
},
"architecture_type": {
"anyOf": [
{
"maxLength": 32,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Model architecture type, e.g., 3D U-Net, ResNet, transformer",
"title": "Architecture Type"
},
"architecture_description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Text description of model architecture.",
"title": "Architecture Description"
},
"modality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Input modality, e.g., fluorescence microscopy, electron microscopy",
"title": "Modality"
},
"target_structure": {
"description": "Biological structure(s) the model is designed to analyze, e.g., nuclei, mitochondria, cells",
"items": {
"type": "string"
},
"title": "Target Structure",
"type": "array"
},
"task": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Bioimage-specific task type, e.g., segmentation, classification, detection, denoising",
"title": "Task"
},
"new_version": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A new version of this model exists with a different model id.",
"title": "New Version"
},
"out_of_scope_use": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Describe how the model may be misused in bioimage analysis contexts and what users should **not** do with the model.",
"title": "Out Of Scope Use"
},
"bias_risks_limitations": {
"$ref": "#/$defs/BiasRisksLimitations",
"description": "Description of known bias, risks, and technical limitations for in-scope model use."
},
"model_parameter_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total number of model parameters.",
"title": "Model Parameter Count"
},
"training": {
"$ref": "#/$defs/TrainingDetails",
"description": "Details on how the model was trained."
},
"inference_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Average inference time per image/tile. Specify hardware and image size. Multiple examples can be given.",
"title": "Inference Time"
},
"memory_requirements_inference": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU memory needed for inference. Multiple examples with different image size can be given.",
"title": "Memory Requirements Inference"
},
"memory_requirements_training": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU memory needed for training. Multiple examples with different image/batch sizes can be given.",
"title": "Memory Requirements Training"
},
"evaluations": {
"description": "Quantitative model evaluations.\n\nNote:\n At the moment we recommend to include only a single test dataset\n (with evaluation factors that may mark subsets of the dataset)\n to avoid confusion and make the presentation of results cleaner.",
"items": {
"$ref": "#/$defs/Evaluation"
},
"title": "Evaluations",
"type": "array"
},
"environmental_impact": {
"$ref": "#/$defs/EnvironmentalImpact",
"description": "Environmental considerations for model training and deployment"
}
},
"title": "model.v0_5.BioimageioConfig",
"type": "object"
}
Fields:
-
reproducibility_tolerance(Sequence[ReproducibilityTolerance | ContinuousReproducibilityTolerance | DiscreteReproducibilityTolerance]) -
funded_by(str | None) -
architecture_type(Annotated[str, MaxLen(32)] | None) -
architecture_description(str | None) -
modality(str | None) -
target_structure(list[str]) -
task(str | None) -
new_version(ModelId | None) -
out_of_scope_use(str | None) -
bias_risks_limitations(BiasRisksLimitations) -
model_parameter_count(int | None) -
training(TrainingDetails) -
inference_time(str | None) -
memory_requirements_inference(str | None) -
memory_requirements_training(str | None) -
evaluations(list[Evaluation]) -
environmental_impact(EnvironmentalImpact)
architecture_description
pydantic-field
¤
architecture_description: str | None = None
Text description of model architecture.
architecture_type
pydantic-field
¤
architecture_type: Annotated[str, MaxLen(32)] | None = None
Model architecture type, e.g., 3D U-Net, ResNet, transformer
bias_risks_limitations
pydantic-field
¤
bias_risks_limitations: BiasRisksLimitations
Description of known bias, risks, and technical limitations for in-scope model use.
environmental_impact
pydantic-field
¤
environmental_impact: EnvironmentalImpact
Environmental considerations for model training and deployment
evaluations
pydantic-field
¤
evaluations: list[Evaluation]
Quantitative model evaluations.
Note
At the moment we recommend to include only a single test dataset (with evaluation factors that may mark subsets of the dataset) to avoid confusion and make the presentation of results cleaner.
inference_time
pydantic-field
¤
inference_time: str | None = None
Average inference time per image/tile. Specify hardware and image size. Multiple examples can be given.
memory_requirements_inference
pydantic-field
¤
memory_requirements_inference: str | None = None
GPU memory needed for inference. Multiple examples with different image size can be given.
memory_requirements_training
pydantic-field
¤
memory_requirements_training: str | None = None
GPU memory needed for training. Multiple examples with different image/batch sizes can be given.
modality
pydantic-field
¤
modality: str | None = None
Input modality, e.g., fluorescence microscopy, electron microscopy
model_parameter_count
pydantic-field
¤
model_parameter_count: int | None = None
Total number of model parameters.
new_version
pydantic-field
¤
new_version: ModelId | None = None
A new version of this model exists with a different model id.
out_of_scope_use
pydantic-field
¤
out_of_scope_use: str | None = None
Describe how the model may be misused in bioimage analysis contexts and what users should not do with the model.
reproducibility_tolerance
pydantic-field
¤
reproducibility_tolerance: Sequence[
ReproducibilityTolerance
| ContinuousReproducibilityTolerance
| DiscreteReproducibilityTolerance
]
Tolerances to allow when reproducing the model's test outputs
from the model's test inputs.
Only the first entry matching tensor id and weights format is considered.
For defaults see ContinuousReproducibilityTolerance/DiscreteReproducibilityTolerance
target_structure
pydantic-field
¤
target_structure: list[str]
Biological structure(s) the model is designed to analyze, e.g., nuclei, mitochondria, cells
task
pydantic-field
¤
task: str | None = None
Bioimage-specific task type, e.g., segmentation, classification, detection, denoising
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
CallableFromDepencency
¤
Bases: ValidatedStringWithInnerNode[CallableFromDepencencyNode]
flowchart TD
bioimageio.spec.model.v0_5.CallableFromDepencency[CallableFromDepencency]
bioimageio.spec._internal.validated_string_with_inner_node.ValidatedStringWithInnerNode[ValidatedStringWithInnerNode]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.validated_string_with_inner_node.ValidatedStringWithInnerNode --> bioimageio.spec.model.v0_5.CallableFromDepencency
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec._internal.validated_string_with_inner_node.ValidatedStringWithInnerNode
click bioimageio.spec.model.v0_5.CallableFromDepencency href "" "bioimageio.spec.model.v0_5.CallableFromDepencency"
click bioimageio.spec._internal.validated_string_with_inner_node.ValidatedStringWithInnerNode href "" "bioimageio.spec._internal.validated_string_with_inner_node.ValidatedStringWithInnerNode"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
callable_name |
The callable Python identifier implemented in module module_name. |
|
module_name |
The Python module that implements callable_name. |
|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
callable_name
property
¤
callable_name
The callable Python identifier implemented in module module_name.
root_model
class-attribute
¤
root_model: type[RootModel[Any]] = RootModel[
Annotated[
str,
StringConstraints(
strip_whitespace=True, pattern="^.+\\..+$"
),
]
]
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
CellposeFlowDynamicsDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Cellpose flow dynamics postprocessing as described in: - Carsen Stringer and Marius Pachitariu. Cellpose: a generalist algorithm for cellular segmentation. Nature Methods, 2021.
Note: Only available if the cellpose package is installed.
Show JSON schema:
{
"$defs": {
"CellposeFlowDynamicsKwargs": {
"additionalProperties": false,
"description": "key word arguments for [CellposeFlowDynamicsDescr][]",
"properties": {
"cellprob_threshold": {
"title": "Cellprob Threshold",
"type": "number"
},
"flow_threshold": {
"title": "Flow Threshold",
"type": "number"
},
"do_3D": {
"title": "Do 3D",
"type": "boolean"
},
"min_size": {
"default": 15,
"description": "Minimum size of objects to keep, in pixels. Default is 15, which is the default in Cellpose. Set to 0 to disable filtering by size.",
"title": "Min Size",
"type": "integer"
},
"output_dtype": {
"default": "uint16",
"enum": [
"uint16",
"uint32"
],
"title": "Output Dtype",
"type": "string"
}
},
"required": [
"cellprob_threshold",
"flow_threshold",
"do_3D"
],
"title": "model.v0_5.CellposeFlowDynamicsKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "Cellpose flow dynamics postprocessing as described in:\n- Carsen Stringer and Marius Pachitariu. [*Cellpose: a generalist algorithm for cellular segmentation*](https://www.nature.com/articles/s41592-020-01018-x). Nature Methods, 2021.\n\nNote: Only available if the `cellpose` package is installed.",
"properties": {
"id": {
"const": "cellpose_flow_dynamics",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/CellposeFlowDynamicsKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.CellposeFlowDynamicsDescr",
"type": "object"
}
Fields:
-
id(Literal['cellpose_flow_dynamics']) -
kwargs(CellposeFlowDynamicsKwargs)
implemented_id
class-attribute
¤
implemented_id: Literal["cellpose_flow_dynamics"] = (
"cellpose_flow_dynamics"
)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
CellposeFlowDynamicsKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for CellposeFlowDynamicsDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [CellposeFlowDynamicsDescr][]",
"properties": {
"cellprob_threshold": {
"title": "Cellprob Threshold",
"type": "number"
},
"flow_threshold": {
"title": "Flow Threshold",
"type": "number"
},
"do_3D": {
"title": "Do 3D",
"type": "boolean"
},
"min_size": {
"default": 15,
"description": "Minimum size of objects to keep, in pixels. Default is 15, which is the default in Cellpose. Set to 0 to disable filtering by size.",
"title": "Min Size",
"type": "integer"
},
"output_dtype": {
"default": "uint16",
"enum": [
"uint16",
"uint32"
],
"title": "Output Dtype",
"type": "string"
}
},
"required": [
"cellprob_threshold",
"flow_threshold",
"do_3D"
],
"title": "model.v0_5.CellposeFlowDynamicsKwargs",
"type": "object"
}
Fields:
-
cellprob_threshold(float) -
flow_threshold(float) -
do_3D(bool) -
min_size(int) -
output_dtype(Literal['uint16', 'uint32'])
min_size
pydantic-field
¤
min_size: int = 15
Minimum size of objects to keep, in pixels. Default is 15, which is the default in Cellpose. Set to 0 to disable filtering by size.
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ChannelAxis
pydantic-model
¤
Bases: AxisBase
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"id": {
"default": "channel",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "channel",
"title": "Type",
"type": "string"
},
"channel_names": {
"description": "Name/label for each channel. The number of channels is given by `len(channel_names)`.",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Channel Names",
"type": "array"
}
},
"required": [
"type",
"channel_names"
],
"title": "model.v0_5.ChannelAxis",
"type": "object"
}
Fields:
-
description(Annotated[str, MaxLen(128)]) -
type(Literal['channel']) -
id(NonBatchAxisId) -
channel_names(NotEmpty[list[str]])
channel_names
pydantic-field
¤
channel_names: NotEmpty[list[str]]
Name/label for each channel. The number of channels is given by len(channel_names).
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
An axis id unique across all axes of one tensor.
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
CiteEntry
pydantic-model
¤
Bases: Node
A citation that should be referenced in work using this resource.
Show JSON schema:
{
"additionalProperties": false,
"description": "A citation that should be referenced in work using this resource.",
"properties": {
"text": {
"description": "free text description",
"title": "Text",
"type": "string"
},
"doi": {
"anyOf": [
{
"description": "A digital object identifier, see https://www.doi.org/",
"pattern": "^10\\.[0-9]{4}.+$",
"title": "Doi",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A digital object identifier (DOI) is the prefered citation reference.\nSee https://www.doi.org/ for details.\nNote:\n Either **doi** or **url** have to be specified.",
"title": "Doi"
},
"url": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "URL to cite (preferably specify a **doi** instead/also).\nNote:\n Either **doi** or **url** have to be specified.",
"title": "Url"
}
},
"required": [
"text"
],
"title": "generic.v0_3.CiteEntry",
"type": "object"
}
Fields:
Validators:
-
_check_doi_or_url
doi
pydantic-field
¤
doi: Doi | None = None
A digital object identifier (DOI) is the prefered citation reference. See https://www.doi.org/ for details. Note: Either doi or url have to be specified.
url
pydantic-field
¤
url: HttpUrl | None = None
URL to cite (preferably specify a doi instead/also). Note: Either doi or url have to be specified.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ClipDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Set tensor values below min to min and above max to max.
See ScaleRangeDescr for examples.
Show JSON schema:
{
"$defs": {
"ClipKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ClipDescr][]",
"properties": {
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum value for clipping.\n\nExclusive with [min_percentile][]",
"title": "Min"
},
"min_percentile": {
"anyOf": [
{
"exclusiveMaximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum percentile for clipping.\n\nExclusive with [min][].\n\nIn range [0, 100).",
"title": "Min Percentile"
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum value for clipping.\n\nExclusive with `max_percentile`.",
"title": "Max"
},
"max_percentile": {
"anyOf": [
{
"exclusiveMinimum": 1,
"maximum": 100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum percentile for clipping.\n\nExclusive with `max`.\n\nIn range (1, 100].",
"title": "Max Percentile"
},
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to determine percentiles jointly,\n\ni.e. axes to reduce to compute min/max from `min_percentile`/`max_percentile`.\nFor example to clip 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape with clipped values per channel, specify `axes=('batch', 'x', 'y')`.\nTo clip samples independently, leave out the 'batch' axis.\n\nOnly valid if `min_percentile` and/or `max_percentile` are set.\n\nDefault: Compute percentiles over all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
}
},
"title": "model.v0_5.ClipKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "Set tensor values below min to min and above max to max.\n\nSee `ScaleRangeDescr` for examples.",
"properties": {
"id": {
"const": "clip",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ClipKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ClipDescr",
"type": "object"
}
Fields:
-
id(Literal['clip']) -
kwargs(ClipKwargs)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ClipKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for ClipDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [ClipDescr][]",
"properties": {
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum value for clipping.\n\nExclusive with [min_percentile][]",
"title": "Min"
},
"min_percentile": {
"anyOf": [
{
"exclusiveMaximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum percentile for clipping.\n\nExclusive with [min][].\n\nIn range [0, 100).",
"title": "Min Percentile"
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum value for clipping.\n\nExclusive with `max_percentile`.",
"title": "Max"
},
"max_percentile": {
"anyOf": [
{
"exclusiveMinimum": 1,
"maximum": 100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum percentile for clipping.\n\nExclusive with `max`.\n\nIn range (1, 100].",
"title": "Max Percentile"
},
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to determine percentiles jointly,\n\ni.e. axes to reduce to compute min/max from `min_percentile`/`max_percentile`.\nFor example to clip 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape with clipped values per channel, specify `axes=('batch', 'x', 'y')`.\nTo clip samples independently, leave out the 'batch' axis.\n\nOnly valid if `min_percentile` and/or `max_percentile` are set.\n\nDefault: Compute percentiles over all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
}
},
"title": "model.v0_5.ClipKwargs",
"type": "object"
}
Fields:
-
min(float | None) -
min_percentile(Annotated[float, Interval(ge=0, lt=100)] | None) -
max(float | None) -
max_percentile(Annotated[float, Interval(gt=1, le=100)] | None) -
axes(Annotated[Sequence[AxisId] | None, Field(examples=[('batch', 'x', 'y')])])
Validators:
-
_validate
axes
pydantic-field
¤
The subset of axes to determine percentiles jointly,
i.e. axes to reduce to compute min/max from min_percentile/max_percentile.
For example to clip 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')
resulting in a tensor of equal shape with clipped values per channel, specify axes=('batch', 'x', 'y').
To clip samples independently, leave out the 'batch' axis.
Only valid if min_percentile and/or max_percentile are set.
Default: Compute percentiles over all axes jointly.
max
pydantic-field
¤
max: float | None = None
Maximum value for clipping.
Exclusive with max_percentile.
max_percentile
pydantic-field
¤
max_percentile: (
Annotated[float, Interval(gt=1, le=100)] | None
) = None
Maximum percentile for clipping.
Exclusive with max.
In range (1, 100].
min
pydantic-field
¤
min: float | None = None
Minimum value for clipping.
Exclusive with min_percentile
min_percentile
pydantic-field
¤
min_percentile: (
Annotated[float, Interval(ge=0, lt=100)] | None
) = None
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
Config
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"$defs": {
"BiasRisksLimitations": {
"additionalProperties": true,
"description": "Known biases, risks, technical limitations, and recommendations for model use.",
"properties": {
"known_biases": {
"default": "In general bioimage models may suffer from biases caused by:\n\n- Imaging protocol dependencies\n- Use of a specific cell type\n- Species-specific training data limitations\n\n",
"description": "Biases in training data or model behavior.",
"title": "Known Biases",
"type": "string"
},
"risks": {
"default": "Common risks in bioimage analysis include:\n\n- Erroneously assuming generalization to unseen experimental conditions\n- Trusting (overconfident) model outputs without validation\n- Misinterpretation of results\n\n",
"description": "Potential risks in the context of bioimage analysis.",
"title": "Risks",
"type": "string"
},
"limitations": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Technical limitations and failure modes.",
"title": "Limitations"
},
"recommendations": {
"default": "Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model.",
"description": "Mitigation strategies regarding `known_biases`, `risks`, and `limitations`, as well as applicable best practices.\n\nConsider:\n- How to use a validation dataset?\n- How to manually validate?\n- Feasibility of domain adaptation for different experimental setups?",
"title": "Recommendations",
"type": "string"
}
},
"title": "model.v0_5.BiasRisksLimitations",
"type": "object"
},
"BioimageioConfig": {
"additionalProperties": true,
"properties": {
"reproducibility_tolerance": {
"description": "Tolerances to allow when reproducing the model's test outputs\nfrom the model's test inputs.\nOnly the first entry matching tensor id and weights format is considered.\nFor defaults see [`ContinuousReproducibilityTolerance`][ContinuousReproducibilityTolerance]/[`DiscreteReproducibilityTolerance`][DiscreteReproducibilityTolerance]",
"items": {
"anyOf": [
{
"$ref": "#/$defs/ReproducibilityTolerance"
},
{
"$ref": "#/$defs/ContinuousReproducibilityTolerance"
},
{
"$ref": "#/$defs/DiscreteReproducibilityTolerance"
}
]
},
"title": "Reproducibility Tolerance",
"type": "array"
},
"funded_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Funding agency, grant number if applicable",
"title": "Funded By"
},
"architecture_type": {
"anyOf": [
{
"maxLength": 32,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Model architecture type, e.g., 3D U-Net, ResNet, transformer",
"title": "Architecture Type"
},
"architecture_description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Text description of model architecture.",
"title": "Architecture Description"
},
"modality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Input modality, e.g., fluorescence microscopy, electron microscopy",
"title": "Modality"
},
"target_structure": {
"description": "Biological structure(s) the model is designed to analyze, e.g., nuclei, mitochondria, cells",
"items": {
"type": "string"
},
"title": "Target Structure",
"type": "array"
},
"task": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Bioimage-specific task type, e.g., segmentation, classification, detection, denoising",
"title": "Task"
},
"new_version": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A new version of this model exists with a different model id.",
"title": "New Version"
},
"out_of_scope_use": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Describe how the model may be misused in bioimage analysis contexts and what users should **not** do with the model.",
"title": "Out Of Scope Use"
},
"bias_risks_limitations": {
"$ref": "#/$defs/BiasRisksLimitations",
"description": "Description of known bias, risks, and technical limitations for in-scope model use."
},
"model_parameter_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total number of model parameters.",
"title": "Model Parameter Count"
},
"training": {
"$ref": "#/$defs/TrainingDetails",
"description": "Details on how the model was trained."
},
"inference_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Average inference time per image/tile. Specify hardware and image size. Multiple examples can be given.",
"title": "Inference Time"
},
"memory_requirements_inference": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU memory needed for inference. Multiple examples with different image size can be given.",
"title": "Memory Requirements Inference"
},
"memory_requirements_training": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU memory needed for training. Multiple examples with different image/batch sizes can be given.",
"title": "Memory Requirements Training"
},
"evaluations": {
"description": "Quantitative model evaluations.\n\nNote:\n At the moment we recommend to include only a single test dataset\n (with evaluation factors that may mark subsets of the dataset)\n to avoid confusion and make the presentation of results cleaner.",
"items": {
"$ref": "#/$defs/Evaluation"
},
"title": "Evaluations",
"type": "array"
},
"environmental_impact": {
"$ref": "#/$defs/EnvironmentalImpact",
"description": "Environmental considerations for model training and deployment"
}
},
"title": "model.v0_5.BioimageioConfig",
"type": "object"
},
"ContinuousReproducibilityTolerance": {
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 100,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"default": 0.001,
"description": "Maximum relative tolerance of reproduced test tensor.\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"maximum": 0.01,
"minimum": 0,
"title": "Relative Tolerance",
"type": "number"
},
"absolute_tolerance": {
"default": 0.001,
"description": "Maximum absolute tolerance of reproduced test tensor.\n\nThe `absolute_tolerance` may not be greater than 1% of the maximum absolute value of the test tensor\n(this serves to prevent false positives in the presence of very small numbers).\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"minimum": 0,
"title": "Absolute Tolerance",
"type": "number"
},
"output_ids": {
"const": "any_continuous_output",
"default": "any_continuous_output",
"description": "Limits the output tensor IDs to all outputs of float data type.",
"title": "Output Ids",
"type": "string"
}
},
"title": "model.v0_5.ContinuousReproducibilityTolerance",
"type": "object"
},
"DiscreteReproducibilityTolerance": {
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 1000,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.\n\nNote: Increased default mismatched elements per million compared to\n[`ReproducibilityTolerance`][ReproducibilityTolerance]/[`ContinuousReproducibilityTolerance`][ContinuousReproducibilityTolerance],\nsince a single pixel mismatch can be more significant than for continuous outputs with numeric tolerance.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"const": 0,
"default": 0,
"description": "Relative tolerance does not apply to discrete outputs",
"title": "Relative Tolerance",
"type": "integer"
},
"absolute_tolerance": {
"const": 0,
"default": 0,
"description": "Absolute tolerance does not apply to discrete outputs",
"title": "Absolute Tolerance",
"type": "integer"
},
"output_ids": {
"const": "any_discrete_output",
"default": "any_discrete_output",
"description": "Limits the output tensor IDs to all outputs of integer or boolean data type.",
"title": "Output Ids",
"type": "string"
}
},
"title": "model.v0_5.DiscreteReproducibilityTolerance",
"type": "object"
},
"EnvironmentalImpact": {
"additionalProperties": true,
"description": "Environmental considerations for model training and deployment.\n\nCarbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).",
"properties": {
"hardware_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU/CPU specifications",
"title": "Hardware Type"
},
"hours_used": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total compute hours",
"title": "Hours Used"
},
"cloud_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If applicable",
"title": "Cloud Provider"
},
"compute_region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Geographic location",
"title": "Compute Region"
},
"co2_emitted": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "kg CO2 equivalent\n\nCarbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).",
"title": "Co2 Emitted"
}
},
"title": "model.v0_5.EnvironmentalImpact",
"type": "object"
},
"Evaluation": {
"additionalProperties": true,
"properties": {
"model_id": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Model being evaluated.",
"title": "Model Id"
},
"dataset_id": {
"description": "Dataset used for evaluation.",
"minLength": 1,
"title": "DatasetId",
"type": "string"
},
"dataset_source": {
"description": "Source of the dataset.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
"dataset_role": {
"description": "Role of the dataset used for evaluation.\n\n- `train`: dataset was (part of) the training data\n- `validation`: dataset was (part of) the validation data used during training, e.g. used for model selection or hyperparameter tuning\n- `test`: dataset was (part of) the designated test data; not used during training or validation, but acquired from the same source/distribution as training data\n- `independent`: dataset is entirely independent test data; not used during training or validation, and acquired from a different source/distribution than training data\n- `unknown`: role of the dataset is unknown; choose this if you are not certain if (a subset) of the data was seen by the model during training.",
"enum": [
"train",
"validation",
"test",
"independent",
"unknown"
],
"title": "Dataset Role",
"type": "string"
},
"sample_count": {
"description": "Number of evaluated samples.",
"title": "Sample Count",
"type": "integer"
},
"evaluation_factors": {
"description": "(Abbreviations of) each evaluation factor.\n\nEvaluation factors are criteria along which model performance is evaluated, e.g. different image conditions\nlike 'low SNR', 'high cell density', or different biological conditions like 'cell type A', 'cell type B'.\nAn 'overall' factor may be included to summarize performance across all conditions.",
"items": {
"maxLength": 16,
"type": "string"
},
"title": "Evaluation Factors",
"type": "array"
},
"evaluation_factors_long": {
"description": "Descriptions (long form) of each evaluation factor.",
"items": {
"type": "string"
},
"title": "Evaluation Factors Long",
"type": "array"
},
"metrics": {
"description": "(Abbreviations of) metrics used for evaluation.",
"items": {
"maxLength": 16,
"type": "string"
},
"title": "Metrics",
"type": "array"
},
"metrics_long": {
"description": "Description of each metric used.",
"items": {
"type": "string"
},
"title": "Metrics Long",
"type": "array"
},
"results": {
"description": "Results for each metric (rows; outer list) and each evaluation factor (columns; inner list).",
"items": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
},
"type": "array"
},
"title": "Results",
"type": "array"
},
"results_summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Interpretation of results for general audience.\n\nConsider:\n - Overall model performance\n - Comparison to existing methods\n - Limitations and areas for improvement",
"title": "Results Summary"
}
},
"required": [
"dataset_id",
"dataset_source",
"dataset_role",
"sample_count",
"evaluation_factors",
"evaluation_factors_long",
"metrics",
"metrics_long",
"results"
],
"title": "model.v0_5.Evaluation",
"type": "object"
},
"ReproducibilityTolerance": {
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 100,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"default": 0.001,
"description": "Maximum relative tolerance of reproduced test tensor.\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"maximum": 0.01,
"minimum": 0,
"title": "Relative Tolerance",
"type": "number"
},
"absolute_tolerance": {
"default": 0.001,
"description": "Maximum absolute tolerance of reproduced test tensor.\n\nThe `absolute_tolerance` may not be greater than 1% of the maximum absolute value of the test tensor\n(this serves to prevent false positives in the presence of very small numbers).\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"minimum": 0,
"title": "Absolute Tolerance",
"type": "number"
},
"output_ids": {
"default": [],
"description": "Limits the output tensor IDs these reproducibility details apply to.\n\nIf empty, the reproducibility details apply to all outputs.",
"items": {
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"title": "Output Ids",
"type": "array"
}
},
"title": "model.v0_5.ReproducibilityTolerance",
"type": "object"
},
"TrainingDetails": {
"additionalProperties": true,
"properties": {
"training_preprocessing": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Detailed image preprocessing steps during model training:\n\nMention:\n- *Normalization methods*\n- *Augmentation strategies*\n- *Resizing/resampling procedures*\n- *Artifact handling*",
"title": "Training Preprocessing"
},
"training_epochs": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of training epochs.",
"title": "Training Epochs"
},
"training_batch_size": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Batch size used in training.",
"title": "Training Batch Size"
},
"initial_learning_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Initial learning rate used in training.",
"title": "Initial Learning Rate"
},
"learning_rate_schedule": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Learning rate schedule used in training.",
"title": "Learning Rate Schedule"
},
"loss_function": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Loss function used in training, e.g. nn.MSELoss.",
"title": "Loss Function"
},
"loss_function_kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `loss_function`",
"title": "Loss Function Kwargs",
"type": "object"
},
"optimizer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "optimizer, e.g. torch.optim.Adam",
"title": "Optimizer"
},
"optimizer_kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `optimizer`",
"title": "Optimizer Kwargs",
"type": "object"
},
"regularization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Regularization techniques used during training, e.g. drop-out or weight decay.",
"title": "Regularization"
},
"training_duration": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total training duration in hours.",
"title": "Training Duration"
}
},
"title": "model.v0_5.TrainingDetails",
"type": "object"
},
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"additionalProperties": true,
"properties": {
"bioimageio": {
"$ref": "#/$defs/BioimageioConfig"
},
"stardist": {
"$ref": "#/$defs/YamlValue",
"default": null
}
},
"title": "model.v0_5.Config",
"type": "object"
}
Fields:
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ConstantPadding
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"mode": {
"const": "constant",
"default": "constant",
"title": "Mode",
"type": "string"
},
"value": {
"anyOf": [
{
"type": "integer"
},
{
"type": "number"
}
],
"default": 0,
"title": "Value"
}
},
"title": "model.v0_5.ConstantPadding",
"type": "object"
}
Fields:
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ContinuousReproducibilityTolerance
pydantic-model
¤
Bases: _ReproducibilityToleranceBase[RelativeTolerance, AbsoluteTolerance]
Show JSON schema:
{
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 100,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"default": 0.001,
"description": "Maximum relative tolerance of reproduced test tensor.\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"maximum": 0.01,
"minimum": 0,
"title": "Relative Tolerance",
"type": "number"
},
"absolute_tolerance": {
"default": 0.001,
"description": "Maximum absolute tolerance of reproduced test tensor.\n\nThe `absolute_tolerance` may not be greater than 1% of the maximum absolute value of the test tensor\n(this serves to prevent false positives in the presence of very small numbers).\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"minimum": 0,
"title": "Absolute Tolerance",
"type": "number"
},
"output_ids": {
"const": "any_continuous_output",
"default": "any_continuous_output",
"description": "Limits the output tensor IDs to all outputs of float data type.",
"title": "Output Ids",
"type": "string"
}
},
"title": "model.v0_5.ContinuousReproducibilityTolerance",
"type": "object"
}
Fields:
-
mismatched_elements_per_million(MismatchedElementsPerMillion) -
weights_formats(Sequence[WeightsFormat]) -
output_ids(Literal['any_continuous_output']) -
relative_tolerance(RelativeTolerance) -
absolute_tolerance(AbsoluteTolerance)
absolute_tolerance
pydantic-field
¤
absolute_tolerance: AbsoluteTolerance = 0.001
Maximum absolute tolerance of reproduced test tensor.
The absolute_tolerance may not be greater than 1% of the maximum absolute value of the test tensor
(this serves to prevent false positives in the presence of very small numbers).
Needs to be 0 for discrete (integer and boolean) outputs.
mismatched_elements_per_million
pydantic-field
¤
mismatched_elements_per_million: MismatchedElementsPerMillion = 100
Maximum number of mismatched elements/pixels per million to tolerate.
output_ids
pydantic-field
¤
output_ids: Literal["any_continuous_output"] = (
"any_continuous_output"
)
Limits the output tensor IDs to all outputs of float data type.
relative_tolerance
pydantic-field
¤
relative_tolerance: RelativeTolerance = 0.001
Maximum relative tolerance of reproduced test tensor. Needs to be 0 for discrete (integer and boolean) outputs.
weights_formats
pydantic-field
¤
weights_formats: Sequence[WeightsFormat] = ()
Limits the weights formats these details apply to.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
serialize
¤
serialize(
handler: SerializerFunctionWrapHandler,
) -> dict[str, Any]
explicitly serialize tolerance values
(even if they are default values and exclude_defaults=True).
Source code in src/bioimageio/spec/model/v0_5.py
3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 | |
CustomProcessingDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields, FileDescr
Custom (post)processing op — source file shipped inline with the model.
Supports (post)processing that cannot be expressed by the built-in named operations (watershed, connected components, etc.) using a simple Python callable interface.
The op is implemented in a .py file packaged alongside the model weights.
Two styles are supported:
Callable class — kwargs go to __init__, tensors arrive in __call__:
.. code-block:: python
# my_postprocess.py
import numpy as np
class my_postprocess:
def __init__(self, threshold: float = 0.5) -> None:
self.threshold = threshold
def __call__(self, *arrays: np.ndarray) -> np.ndarray:
# arrays = model output tensors in rdf.yaml declaration order
return (arrays[0] > self.threshold).astype(np.uint8)
Factory function — alternative closure style, identical runtime behaviour:
.. code-block:: python
# my_postprocess.py
import numpy as np
def my_postprocess(threshold: float = 0.5):
def run(*arrays: np.ndarray) -> np.ndarray:
return (arrays[0] > threshold).astype(np.uint8)
return run
Reference it in rdf.yaml with the source file included in the package:
.. code-block:: yaml
postprocessing:
- id: custom
callable: my_postprocess # class or function name in source
source: my_postprocess.py # packaged alongside weights
sha256: <hash> # sha256 of the source file
kwargs: # forwarded to __init__ / factory
threshold: 0.5
Security: source files are SHA-256 verified before execution. Execution requires explicit opt-in in bioimageio.core and curator review before Zoo publication.
Show JSON schema:
{
"$defs": {
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"description": "Custom (post)processing op \u2014 source file shipped inline with the model.\n\nSupports (post)processing that cannot be expressed by the built-in named\noperations (watershed, connected components, etc.)\nusing a simple Python callable interface.\n\nThe op is implemented in a ``.py`` file packaged alongside the model weights.\nTwo styles are supported:\n\n*Callable class* \u2014 kwargs go to ``__init__``, tensors arrive in ``__call__``:\n\n.. code-block:: python\n\n # my_postprocess.py\n import numpy as np\n\n class my_postprocess:\n def __init__(self, threshold: float = 0.5) -> None:\n self.threshold = threshold\n def __call__(self, *arrays: np.ndarray) -> np.ndarray:\n # arrays = model output tensors in rdf.yaml declaration order\n return (arrays[0] > self.threshold).astype(np.uint8)\n\n*Factory function* \u2014 alternative closure style, identical runtime behaviour:\n\n.. code-block:: python\n\n # my_postprocess.py\n import numpy as np\n\n def my_postprocess(threshold: float = 0.5):\n def run(*arrays: np.ndarray) -> np.ndarray:\n return (arrays[0] > threshold).astype(np.uint8)\n return run\n\nReference it in ``rdf.yaml`` with the source file included in the package:\n\n.. code-block:: yaml\n\n postprocessing:\n - id: custom\n callable: my_postprocess # class or function name in source\n source: my_postprocess.py # packaged alongside weights\n sha256: <hash> # sha256 of the source file\n kwargs: # forwarded to __init__ / factory\n threshold: 0.5\n\n**Security:** source files are SHA-256 verified before execution.\nExecution requires explicit opt-in in bioimageio.core and curator\nreview before Zoo publication.",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Python source file (included when packaging the model).",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"id": {
"const": "custom",
"title": "Id",
"type": "string"
},
"callable": {
"description": "Name of the callable class or factory function defined in ``source``.\n\nAt runtime: ``op = callable(**kwargs)``, then ``result = op(*output_tensors)``\nper image. Both a class with ``__call__`` and a factory function returning\na callable satisfy this protocol.",
"examples": [
"my_postprocess_factory",
"MyPostprocessClass"
],
"title": "Callable",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "Keyword arguments forwarded to the callable (``__init__`` or factory).",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"source",
"id",
"callable"
],
"title": "model.v0_5.CustomProcessingDescr",
"type": "object"
}
Fields:
-
sha256(Sha256 | None) -
id(Literal['custom']) -
callable(Annotated[str, Field(examples=['my_postprocess_factory', 'MyPostprocessClass'])]) -
source(Annotated[FileSource, AfterValidator(wo_special_file_name)]) -
kwargs(dict[str, YamlValue])
callable
pydantic-field
¤
callable: Annotated[
str,
Field(
examples=[
"my_postprocess_factory",
"MyPostprocessClass",
]
),
]
Name of the callable class or factory function defined in source.
At runtime: op = callable(**kwargs), then result = op(*output_tensors)
per image. Both a class with __call__ and a factory function returning
a callable satisfy this protocol.
kwargs
pydantic-field
¤
kwargs: dict[str, YamlValue]
Keyword arguments forwarded to the callable (__init__ or factory).
source
pydantic-field
¤
source: Annotated[
FileSource, AfterValidator(wo_special_file_name)
]
Python source file (included when packaging the model).
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
DataDependentSize
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"min": {
"default": 1,
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"max": {
"anyOf": [
{
"exclusiveMinimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max"
}
},
"title": "model.v0_5.DataDependentSize",
"type": "object"
}
Fields:
Validators:
-
_validate_max_gt_min
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_size
¤
validate_size(size: int, msg_prefix: str = '') -> int
Source code in src/bioimageio/spec/model/v0_5.py
367 368 369 370 371 372 373 374 | |
DatasetDescr
pydantic-model
¤
Bases: GenericDescrBase
A bioimage.io dataset resource description file (dataset RDF) describes a dataset relevant to bioimage processing.
Show JSON schema:
{
"$defs": {
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"BadgeDescr": {
"additionalProperties": false,
"description": "A custom badge",
"properties": {
"label": {
"description": "badge label to display on hover",
"examples": [
"Open in Colab"
],
"title": "Label",
"type": "string"
},
"icon": {
"anyOf": [
{
"format": "file-path",
"title": "FilePath",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "badge icon (included in bioimage.io package if not a URL)",
"examples": [
"https://colab.research.google.com/assets/colab-badge.svg"
],
"title": "Icon"
},
"url": {
"description": "target URL",
"examples": [
"https://colab.research.google.com/github/HenriquesLab/ZeroCostDL4Mic/blob/master/Colab_notebooks/U-net_2D_ZeroCostDL4Mic.ipynb"
],
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
}
},
"required": [
"label",
"url"
],
"title": "generic.v0_2.BadgeDescr",
"type": "object"
},
"BioimageioConfig": {
"additionalProperties": true,
"description": "bioimage.io internal metadata.",
"properties": {},
"title": "generic.v0_3.BioimageioConfig",
"type": "object"
},
"CiteEntry": {
"additionalProperties": false,
"description": "A citation that should be referenced in work using this resource.",
"properties": {
"text": {
"description": "free text description",
"title": "Text",
"type": "string"
},
"doi": {
"anyOf": [
{
"description": "A digital object identifier, see https://www.doi.org/",
"pattern": "^10\\.[0-9]{4}.+$",
"title": "Doi",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A digital object identifier (DOI) is the prefered citation reference.\nSee https://www.doi.org/ for details.\nNote:\n Either **doi** or **url** have to be specified.",
"title": "Doi"
},
"url": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "URL to cite (preferably specify a **doi** instead/also).\nNote:\n Either **doi** or **url** have to be specified.",
"title": "Url"
}
},
"required": [
"text"
],
"title": "generic.v0_3.CiteEntry",
"type": "object"
},
"Config": {
"additionalProperties": true,
"description": "A place to store additional metadata (often tool specific).\n\nSuch additional metadata is typically set programmatically by the respective tool\nor by people with specific insights into the tool.\nIf you want to store additional metadata that does not match any of the other\nfields, think of a key unlikely to collide with anyone elses use-case/tool and save\nit here.\n\nPlease consider creating [an issue in the bioimageio.spec repository](https://github.com/bioimage-io/spec-bioimage-io/issues/new?template=Blank+issue)\nif you are not sure if an existing field could cover your use case\nor if you think such a field should exist.",
"properties": {
"bioimageio": {
"$ref": "#/$defs/BioimageioConfig"
}
},
"title": "generic.v0_3.Config",
"type": "object"
},
"FileDescr": {
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
},
"Maintainer": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"github_user": {
"title": "Github User",
"type": "string"
}
},
"required": [
"github_user"
],
"title": "generic.v0_3.Maintainer",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"Uploader": {
"additionalProperties": false,
"properties": {
"email": {
"description": "Email",
"format": "email",
"title": "Email",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "name",
"title": "Name"
}
},
"required": [
"email"
],
"title": "generic.v0_2.Uploader",
"type": "object"
},
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
}
},
"additionalProperties": false,
"description": "A bioimage.io dataset resource description file (dataset RDF) describes a dataset relevant to bioimage\nprocessing.",
"properties": {
"name": {
"description": "A human-friendly name of the resource description.\nMay only contains letters, digits, underscore, minus, parentheses and spaces.",
"maxLength": 128,
"minLength": 5,
"title": "Name",
"type": "string"
},
"description": {
"default": "",
"description": "A string containing a brief description.",
"maxLength": 1024,
"title": "Description",
"type": "string"
},
"covers": {
"description": "Cover images. Please use an image smaller than 500KB and an aspect ratio width to height of 2:1 or 1:1.\nThe supported image formats are: ('.gif', '.jpeg', '.jpg', '.png', '.svg')",
"examples": [
[
{
"source": "cover.png"
}
]
],
"items": {
"$ref": "#/$defs/FileDescr"
},
"title": "Covers",
"type": "array"
},
"documentation": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "README.md"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Additional model documentation.\nThe recommended documentation source file name is `README.md`. An `.md` suffix is mandatory."
},
"id_emoji": {
"anyOf": [
{
"examples": [
"\ud83e\udd88",
"\ud83e\udda5"
],
"maxLength": 2,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "UTF-8 emoji for display alongside the `id`.",
"title": "Id Emoji"
},
"authors": {
"description": "The authors are the creators of this resource description and the primary points of contact.",
"items": {
"$ref": "#/$defs/Author"
},
"title": "Authors",
"type": "array"
},
"attachments": {
"description": "file attachments",
"items": {
"$ref": "#/$defs/FileDescr"
},
"title": "Attachments",
"type": "array"
},
"cite": {
"description": "citations",
"items": {
"$ref": "#/$defs/CiteEntry"
},
"title": "Cite",
"type": "array"
},
"license": {
"anyOf": [
{
"enum": [
"0BSD",
"3D-Slicer-1.0",
"AAL",
"Abstyles",
"AdaCore-doc",
"Adobe-2006",
"Adobe-Display-PostScript",
"Adobe-Glyph",
"Adobe-Utopia",
"ADSL",
"AFL-1.1",
"AFL-1.2",
"AFL-2.0",
"AFL-2.1",
"AFL-3.0",
"Afmparse",
"AGPL-1.0-only",
"AGPL-1.0-or-later",
"AGPL-3.0-only",
"AGPL-3.0-or-later",
"Aladdin",
"AMD-newlib",
"AMDPLPA",
"AML",
"AML-glslang",
"AMPAS",
"ANTLR-PD",
"ANTLR-PD-fallback",
"any-OSI",
"any-OSI-perl-modules",
"Apache-1.0",
"Apache-1.1",
"Apache-2.0",
"APAFML",
"APL-1.0",
"App-s2p",
"APSL-1.0",
"APSL-1.1",
"APSL-1.2",
"APSL-2.0",
"Arphic-1999",
"Artistic-1.0",
"Artistic-1.0-cl8",
"Artistic-1.0-Perl",
"Artistic-2.0",
"Artistic-dist",
"Aspell-RU",
"ASWF-Digital-Assets-1.0",
"ASWF-Digital-Assets-1.1",
"Baekmuk",
"Bahyph",
"Barr",
"bcrypt-Solar-Designer",
"Beerware",
"Bitstream-Charter",
"Bitstream-Vera",
"BitTorrent-1.0",
"BitTorrent-1.1",
"blessing",
"BlueOak-1.0.0",
"Boehm-GC",
"Boehm-GC-without-fee",
"Borceux",
"Brian-Gladman-2-Clause",
"Brian-Gladman-3-Clause",
"BSD-1-Clause",
"BSD-2-Clause",
"BSD-2-Clause-Darwin",
"BSD-2-Clause-first-lines",
"BSD-2-Clause-Patent",
"BSD-2-Clause-pkgconf-disclaimer",
"BSD-2-Clause-Views",
"BSD-3-Clause",
"BSD-3-Clause-acpica",
"BSD-3-Clause-Attribution",
"BSD-3-Clause-Clear",
"BSD-3-Clause-flex",
"BSD-3-Clause-HP",
"BSD-3-Clause-LBNL",
"BSD-3-Clause-Modification",
"BSD-3-Clause-No-Military-License",
"BSD-3-Clause-No-Nuclear-License",
"BSD-3-Clause-No-Nuclear-License-2014",
"BSD-3-Clause-No-Nuclear-Warranty",
"BSD-3-Clause-Open-MPI",
"BSD-3-Clause-Sun",
"BSD-4-Clause",
"BSD-4-Clause-Shortened",
"BSD-4-Clause-UC",
"BSD-4.3RENO",
"BSD-4.3TAHOE",
"BSD-Advertising-Acknowledgement",
"BSD-Attribution-HPND-disclaimer",
"BSD-Inferno-Nettverk",
"BSD-Protection",
"BSD-Source-beginning-file",
"BSD-Source-Code",
"BSD-Systemics",
"BSD-Systemics-W3Works",
"BSL-1.0",
"BUSL-1.1",
"bzip2-1.0.6",
"C-UDA-1.0",
"CAL-1.0",
"CAL-1.0-Combined-Work-Exception",
"Caldera",
"Caldera-no-preamble",
"Catharon",
"CATOSL-1.1",
"CC-BY-1.0",
"CC-BY-2.0",
"CC-BY-2.5",
"CC-BY-2.5-AU",
"CC-BY-3.0",
"CC-BY-3.0-AT",
"CC-BY-3.0-AU",
"CC-BY-3.0-DE",
"CC-BY-3.0-IGO",
"CC-BY-3.0-NL",
"CC-BY-3.0-US",
"CC-BY-4.0",
"CC-BY-NC-1.0",
"CC-BY-NC-2.0",
"CC-BY-NC-2.5",
"CC-BY-NC-3.0",
"CC-BY-NC-3.0-DE",
"CC-BY-NC-4.0",
"CC-BY-NC-ND-1.0",
"CC-BY-NC-ND-2.0",
"CC-BY-NC-ND-2.5",
"CC-BY-NC-ND-3.0",
"CC-BY-NC-ND-3.0-DE",
"CC-BY-NC-ND-3.0-IGO",
"CC-BY-NC-ND-4.0",
"CC-BY-NC-SA-1.0",
"CC-BY-NC-SA-2.0",
"CC-BY-NC-SA-2.0-DE",
"CC-BY-NC-SA-2.0-FR",
"CC-BY-NC-SA-2.0-UK",
"CC-BY-NC-SA-2.5",
"CC-BY-NC-SA-3.0",
"CC-BY-NC-SA-3.0-DE",
"CC-BY-NC-SA-3.0-IGO",
"CC-BY-NC-SA-4.0",
"CC-BY-ND-1.0",
"CC-BY-ND-2.0",
"CC-BY-ND-2.5",
"CC-BY-ND-3.0",
"CC-BY-ND-3.0-DE",
"CC-BY-ND-4.0",
"CC-BY-SA-1.0",
"CC-BY-SA-2.0",
"CC-BY-SA-2.0-UK",
"CC-BY-SA-2.1-JP",
"CC-BY-SA-2.5",
"CC-BY-SA-3.0",
"CC-BY-SA-3.0-AT",
"CC-BY-SA-3.0-DE",
"CC-BY-SA-3.0-IGO",
"CC-BY-SA-4.0",
"CC-PDDC",
"CC-PDM-1.0",
"CC-SA-1.0",
"CC0-1.0",
"CDDL-1.0",
"CDDL-1.1",
"CDL-1.0",
"CDLA-Permissive-1.0",
"CDLA-Permissive-2.0",
"CDLA-Sharing-1.0",
"CECILL-1.0",
"CECILL-1.1",
"CECILL-2.0",
"CECILL-2.1",
"CECILL-B",
"CECILL-C",
"CERN-OHL-1.1",
"CERN-OHL-1.2",
"CERN-OHL-P-2.0",
"CERN-OHL-S-2.0",
"CERN-OHL-W-2.0",
"CFITSIO",
"check-cvs",
"checkmk",
"ClArtistic",
"Clips",
"CMU-Mach",
"CMU-Mach-nodoc",
"CNRI-Jython",
"CNRI-Python",
"CNRI-Python-GPL-Compatible",
"COIL-1.0",
"Community-Spec-1.0",
"Condor-1.1",
"copyleft-next-0.3.0",
"copyleft-next-0.3.1",
"Cornell-Lossless-JPEG",
"CPAL-1.0",
"CPL-1.0",
"CPOL-1.02",
"Cronyx",
"Crossword",
"CryptoSwift",
"CrystalStacker",
"CUA-OPL-1.0",
"Cube",
"curl",
"cve-tou",
"D-FSL-1.0",
"DEC-3-Clause",
"diffmark",
"DL-DE-BY-2.0",
"DL-DE-ZERO-2.0",
"DOC",
"DocBook-DTD",
"DocBook-Schema",
"DocBook-Stylesheet",
"DocBook-XML",
"Dotseqn",
"DRL-1.0",
"DRL-1.1",
"DSDP",
"dtoa",
"dvipdfm",
"ECL-1.0",
"ECL-2.0",
"EFL-1.0",
"EFL-2.0",
"eGenix",
"Elastic-2.0",
"Entessa",
"EPICS",
"EPL-1.0",
"EPL-2.0",
"ErlPL-1.1",
"etalab-2.0",
"EUDatagrid",
"EUPL-1.0",
"EUPL-1.1",
"EUPL-1.2",
"Eurosym",
"Fair",
"FBM",
"FDK-AAC",
"Ferguson-Twofish",
"Frameworx-1.0",
"FreeBSD-DOC",
"FreeImage",
"FSFAP",
"FSFAP-no-warranty-disclaimer",
"FSFUL",
"FSFULLR",
"FSFULLRSD",
"FSFULLRWD",
"FSL-1.1-ALv2",
"FSL-1.1-MIT",
"FTL",
"Furuseth",
"fwlw",
"Game-Programming-Gems",
"GCR-docs",
"GD",
"generic-xts",
"GFDL-1.1-invariants-only",
"GFDL-1.1-invariants-or-later",
"GFDL-1.1-no-invariants-only",
"GFDL-1.1-no-invariants-or-later",
"GFDL-1.1-only",
"GFDL-1.1-or-later",
"GFDL-1.2-invariants-only",
"GFDL-1.2-invariants-or-later",
"GFDL-1.2-no-invariants-only",
"GFDL-1.2-no-invariants-or-later",
"GFDL-1.2-only",
"GFDL-1.2-or-later",
"GFDL-1.3-invariants-only",
"GFDL-1.3-invariants-or-later",
"GFDL-1.3-no-invariants-only",
"GFDL-1.3-no-invariants-or-later",
"GFDL-1.3-only",
"GFDL-1.3-or-later",
"Giftware",
"GL2PS",
"Glide",
"Glulxe",
"GLWTPL",
"gnuplot",
"GPL-1.0-only",
"GPL-1.0-or-later",
"GPL-2.0-only",
"GPL-2.0-or-later",
"GPL-3.0-only",
"GPL-3.0-or-later",
"Graphics-Gems",
"gSOAP-1.3b",
"gtkbook",
"Gutmann",
"HaskellReport",
"HDF5",
"hdparm",
"HIDAPI",
"Hippocratic-2.1",
"HP-1986",
"HP-1989",
"HPND",
"HPND-DEC",
"HPND-doc",
"HPND-doc-sell",
"HPND-export-US",
"HPND-export-US-acknowledgement",
"HPND-export-US-modify",
"HPND-export2-US",
"HPND-Fenneberg-Livingston",
"HPND-INRIA-IMAG",
"HPND-Intel",
"HPND-Kevlin-Henney",
"HPND-Markus-Kuhn",
"HPND-merchantability-variant",
"HPND-MIT-disclaimer",
"HPND-Netrek",
"HPND-Pbmplus",
"HPND-sell-MIT-disclaimer-xserver",
"HPND-sell-regexpr",
"HPND-sell-variant",
"HPND-sell-variant-MIT-disclaimer",
"HPND-sell-variant-MIT-disclaimer-rev",
"HPND-UC",
"HPND-UC-export-US",
"HTMLTIDY",
"IBM-pibs",
"ICU",
"IEC-Code-Components-EULA",
"IJG",
"IJG-short",
"ImageMagick",
"iMatix",
"Imlib2",
"Info-ZIP",
"Inner-Net-2.0",
"InnoSetup",
"Intel",
"Intel-ACPI",
"Interbase-1.0",
"IPA",
"IPL-1.0",
"ISC",
"ISC-Veillard",
"Jam",
"JasPer-2.0",
"jove",
"JPL-image",
"JPNIC",
"JSON",
"Kastrup",
"Kazlib",
"Knuth-CTAN",
"LAL-1.2",
"LAL-1.3",
"Latex2e",
"Latex2e-translated-notice",
"Leptonica",
"LGPL-2.0-only",
"LGPL-2.0-or-later",
"LGPL-2.1-only",
"LGPL-2.1-or-later",
"LGPL-3.0-only",
"LGPL-3.0-or-later",
"LGPLLR",
"Libpng",
"libpng-1.6.35",
"libpng-2.0",
"libselinux-1.0",
"libtiff",
"libutil-David-Nugent",
"LiLiQ-P-1.1",
"LiLiQ-R-1.1",
"LiLiQ-Rplus-1.1",
"Linux-man-pages-1-para",
"Linux-man-pages-copyleft",
"Linux-man-pages-copyleft-2-para",
"Linux-man-pages-copyleft-var",
"Linux-OpenIB",
"LOOP",
"LPD-document",
"LPL-1.0",
"LPL-1.02",
"LPPL-1.0",
"LPPL-1.1",
"LPPL-1.2",
"LPPL-1.3a",
"LPPL-1.3c",
"lsof",
"Lucida-Bitmap-Fonts",
"LZMA-SDK-9.11-to-9.20",
"LZMA-SDK-9.22",
"Mackerras-3-Clause",
"Mackerras-3-Clause-acknowledgment",
"magaz",
"mailprio",
"MakeIndex",
"man2html",
"Martin-Birgmeier",
"McPhee-slideshow",
"metamail",
"Minpack",
"MIPS",
"MirOS",
"MIT",
"MIT-0",
"MIT-advertising",
"MIT-Click",
"MIT-CMU",
"MIT-enna",
"MIT-feh",
"MIT-Festival",
"MIT-Khronos-old",
"MIT-Modern-Variant",
"MIT-open-group",
"MIT-testregex",
"MIT-Wu",
"MITNFA",
"MMIXware",
"Motosoto",
"MPEG-SSG",
"mpi-permissive",
"mpich2",
"MPL-1.0",
"MPL-1.1",
"MPL-2.0",
"MPL-2.0-no-copyleft-exception",
"mplus",
"MS-LPL",
"MS-PL",
"MS-RL",
"MTLL",
"MulanPSL-1.0",
"MulanPSL-2.0",
"Multics",
"Mup",
"NAIST-2003",
"NASA-1.3",
"Naumen",
"NBPL-1.0",
"NCBI-PD",
"NCGL-UK-2.0",
"NCL",
"NCSA",
"NetCDF",
"Newsletr",
"NGPL",
"ngrep",
"NICTA-1.0",
"NIST-PD",
"NIST-PD-fallback",
"NIST-Software",
"NLOD-1.0",
"NLOD-2.0",
"NLPL",
"Nokia",
"NOSL",
"Noweb",
"NPL-1.0",
"NPL-1.1",
"NPOSL-3.0",
"NRL",
"NTIA-PD",
"NTP",
"NTP-0",
"O-UDA-1.0",
"OAR",
"OCCT-PL",
"OCLC-2.0",
"ODbL-1.0",
"ODC-By-1.0",
"OFFIS",
"OFL-1.0",
"OFL-1.0-no-RFN",
"OFL-1.0-RFN",
"OFL-1.1",
"OFL-1.1-no-RFN",
"OFL-1.1-RFN",
"OGC-1.0",
"OGDL-Taiwan-1.0",
"OGL-Canada-2.0",
"OGL-UK-1.0",
"OGL-UK-2.0",
"OGL-UK-3.0",
"OGTSL",
"OLDAP-1.1",
"OLDAP-1.2",
"OLDAP-1.3",
"OLDAP-1.4",
"OLDAP-2.0",
"OLDAP-2.0.1",
"OLDAP-2.1",
"OLDAP-2.2",
"OLDAP-2.2.1",
"OLDAP-2.2.2",
"OLDAP-2.3",
"OLDAP-2.4",
"OLDAP-2.5",
"OLDAP-2.6",
"OLDAP-2.7",
"OLDAP-2.8",
"OLFL-1.3",
"OML",
"OpenPBS-2.3",
"OpenSSL",
"OpenSSL-standalone",
"OpenVision",
"OPL-1.0",
"OPL-UK-3.0",
"OPUBL-1.0",
"OSET-PL-2.1",
"OSL-1.0",
"OSL-1.1",
"OSL-2.0",
"OSL-2.1",
"OSL-3.0",
"PADL",
"Parity-6.0.0",
"Parity-7.0.0",
"PDDL-1.0",
"PHP-3.0",
"PHP-3.01",
"Pixar",
"pkgconf",
"Plexus",
"pnmstitch",
"PolyForm-Noncommercial-1.0.0",
"PolyForm-Small-Business-1.0.0",
"PostgreSQL",
"PPL",
"PSF-2.0",
"psfrag",
"psutils",
"Python-2.0",
"Python-2.0.1",
"python-ldap",
"Qhull",
"QPL-1.0",
"QPL-1.0-INRIA-2004",
"radvd",
"Rdisc",
"RHeCos-1.1",
"RPL-1.1",
"RPL-1.5",
"RPSL-1.0",
"RSA-MD",
"RSCPL",
"Ruby",
"Ruby-pty",
"SAX-PD",
"SAX-PD-2.0",
"Saxpath",
"SCEA",
"SchemeReport",
"Sendmail",
"Sendmail-8.23",
"Sendmail-Open-Source-1.1",
"SGI-B-1.0",
"SGI-B-1.1",
"SGI-B-2.0",
"SGI-OpenGL",
"SGP4",
"SHL-0.5",
"SHL-0.51",
"SimPL-2.0",
"SISSL",
"SISSL-1.2",
"SL",
"Sleepycat",
"SMAIL-GPL",
"SMLNJ",
"SMPPL",
"SNIA",
"snprintf",
"SOFA",
"softSurfer",
"Soundex",
"Spencer-86",
"Spencer-94",
"Spencer-99",
"SPL-1.0",
"ssh-keyscan",
"SSH-OpenSSH",
"SSH-short",
"SSLeay-standalone",
"SSPL-1.0",
"SugarCRM-1.1.3",
"SUL-1.0",
"Sun-PPP",
"Sun-PPP-2000",
"SunPro",
"SWL",
"swrule",
"Symlinks",
"TAPR-OHL-1.0",
"TCL",
"TCP-wrappers",
"TermReadKey",
"TGPPL-1.0",
"ThirdEye",
"threeparttable",
"TMate",
"TORQUE-1.1",
"TOSL",
"TPDL",
"TPL-1.0",
"TrustedQSL",
"TTWL",
"TTYP0",
"TU-Berlin-1.0",
"TU-Berlin-2.0",
"Ubuntu-font-1.0",
"UCAR",
"UCL-1.0",
"ulem",
"UMich-Merit",
"Unicode-3.0",
"Unicode-DFS-2015",
"Unicode-DFS-2016",
"Unicode-TOU",
"UnixCrypt",
"Unlicense",
"Unlicense-libtelnet",
"Unlicense-libwhirlpool",
"UPL-1.0",
"URT-RLE",
"Vim",
"VOSTROM",
"VSL-1.0",
"W3C",
"W3C-19980720",
"W3C-20150513",
"w3m",
"Watcom-1.0",
"Widget-Workshop",
"Wsuipa",
"WTFPL",
"wwl",
"X11",
"X11-distribute-modifications-variant",
"X11-swapped",
"Xdebug-1.03",
"Xerox",
"Xfig",
"XFree86-1.1",
"xinetd",
"xkeyboard-config-Zinoviev",
"xlock",
"Xnet",
"xpp",
"XSkat",
"xzoom",
"YPL-1.0",
"YPL-1.1",
"Zed",
"Zeeff",
"Zend-2.0",
"Zimbra-1.3",
"Zimbra-1.4",
"Zlib",
"zlib-acknowledgement",
"ZPL-1.1",
"ZPL-2.0",
"ZPL-2.1"
],
"title": "LicenseId",
"type": "string"
},
{
"enum": [
"AGPL-1.0",
"AGPL-3.0",
"BSD-2-Clause-FreeBSD",
"BSD-2-Clause-NetBSD",
"bzip2-1.0.5",
"eCos-2.0",
"GFDL-1.1",
"GFDL-1.2",
"GFDL-1.3",
"GPL-1.0",
"GPL-1.0+",
"GPL-2.0",
"GPL-2.0+",
"GPL-2.0-with-autoconf-exception",
"GPL-2.0-with-bison-exception",
"GPL-2.0-with-classpath-exception",
"GPL-2.0-with-font-exception",
"GPL-2.0-with-GCC-exception",
"GPL-3.0",
"GPL-3.0+",
"GPL-3.0-with-autoconf-exception",
"GPL-3.0-with-GCC-exception",
"LGPL-2.0",
"LGPL-2.0+",
"LGPL-2.1",
"LGPL-2.1+",
"LGPL-3.0",
"LGPL-3.0+",
"Net-SNMP",
"Nunit",
"StandardML-NJ",
"wxWindows"
],
"title": "DeprecatedLicenseId",
"type": "string"
},
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "A [SPDX license identifier](https://spdx.org/licenses/) or a custom license file.",
"examples": [
"CC0-1.0",
"MIT",
"BSD-2-Clause"
],
"title": "License"
},
"git_repo": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A URL to the Git repository where the resource is being developed.",
"examples": [
"https://github.com/bioimage-io/spec-bioimage-io/tree/main/example_descriptions/models/unet2d_nuclei_broad"
],
"title": "Git Repo"
},
"icon": {
"anyOf": [
{
"maxLength": 2,
"minLength": 1,
"type": "string"
},
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "An icon for illustration, e.g. on bioimage.io",
"title": "Icon"
},
"links": {
"description": "IDs of other bioimage.io resources",
"examples": [
[
"ilastik/ilastik",
"deepimagej/deepimagej",
"zero/notebook_u-net_3d_zerocostdl4mic"
]
],
"items": {
"type": "string"
},
"title": "Links",
"type": "array"
},
"uploader": {
"anyOf": [
{
"$ref": "#/$defs/Uploader"
},
{
"type": "null"
}
],
"default": null,
"description": "The person who uploaded the model (e.g. to bioimage.io)"
},
"maintainers": {
"description": "Maintainers of this resource.\nIf not specified, `authors` are maintainers and at least some of them has to specify their `github_user` name",
"items": {
"$ref": "#/$defs/Maintainer"
},
"title": "Maintainers",
"type": "array"
},
"tags": {
"description": "Associated tags",
"examples": [
[
"unet2d",
"pytorch",
"nucleus",
"segmentation",
"dsb2018"
]
],
"items": {
"type": "string"
},
"title": "Tags",
"type": "array"
},
"version": {
"anyOf": [
{
"$ref": "#/$defs/Version"
},
{
"type": "null"
}
],
"default": null,
"description": "The version of the resource following SemVer 2.0."
},
"version_comment": {
"anyOf": [
{
"maxLength": 512,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A comment on the version of the resource.",
"title": "Version Comment"
},
"format_version": {
"const": "0.3.4",
"description": "The **format** version of this resource specification",
"title": "Format Version",
"type": "string"
},
"badges": {
"description": "badges associated with this resource",
"items": {
"$ref": "#/$defs/BadgeDescr"
},
"title": "Badges",
"type": "array"
},
"config": {
"$ref": "#/$defs/Config",
"description": "A field for custom configuration that can contain any keys not present in the RDF spec.\nThis means you should not store, for example, a GitHub repo URL in `config` since there is a `git_repo` field.\nKeys in `config` may be very specific to a tool or consumer software. To avoid conflicting definitions,\nit is recommended to wrap added configuration into a sub-field named with the specific domain or tool name,\nfor example:\n```yaml\nconfig:\n giraffe_neckometer: # here is the domain name\n length: 3837283\n address:\n home: zoo\n imagej: # config specific to ImageJ\n macro_dir: path/to/macro/file\n```\nIf possible, please use [`snake_case`](https://en.wikipedia.org/wiki/Snake_case) for keys in `config`.\nYou may want to list linked files additionally under `attachments` to include them when packaging a resource.\n(Packaging a resource means downloading/copying important linked files and creating a ZIP archive that contains\nan altered rdf.yaml file with local references to the downloaded files.)"
},
"type": {
"const": "dataset",
"title": "Type",
"type": "string"
},
"id": {
"anyOf": [
{
"minLength": 1,
"title": "DatasetId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "bioimage.io-wide unique resource identifier\nassigned by bioimage.io; version **un**specific.",
"title": "Id"
},
"parent": {
"anyOf": [
{
"minLength": 1,
"title": "DatasetId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The description from which this one is derived",
"title": "Parent"
},
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "\"URL to the source of the dataset.",
"title": "Source"
}
},
"required": [
"name",
"format_version",
"type"
],
"title": "dataset 0.3.4",
"type": "object"
}
Fields:
-
_validation_summary(ValidationSummary | None) -
name(Annotated[Annotated[str, RestrictCharacters(string.ascii_letters + string.digits + '_+- ()')], MinLen(5), MaxLen(128), warn(MaxLen(64), 'Name longer than 64 characters.', INFO)]) -
description(FAIR[Annotated[str, MaxLen(1024), warn(MaxLen(512), 'Description longer than 512 characters.')]]) -
covers(list[_FileDescr_cover]) -
documentation(FAIR[FileDescr_documentation | None]) -
id_emoji(Annotated[str, Len(min_length=1, max_length=2), Field(examples=['🦈', '🦥'])] | None) -
authors(FAIR[list[Author]]) -
attachments(list[FileDescr_package]) -
cite(FAIR[list[CiteEntry]]) -
license(FAIR[Annotated[LicenseId | DeprecatedLicenseId | None | FileDescr_package, Field(union_mode='left_to_right', examples=['CC0-1.0', 'MIT', 'BSD-2-Clause'])]]) -
git_repo(Annotated[HttpUrl | None, Field(examples=['https://github.com/bioimage-io/spec-bioimage-io/tree/main/example_descriptions/models/unet2d_nuclei_broad'])]) -
icon(Annotated[str, Len(min_length=1, max_length=2)] | FileDescr_package | None) -
links(Annotated[list[str], Field(examples=[('ilastik/ilastik', 'deepimagej/deepimagej', 'zero/notebook_u-net_3d_zerocostdl4mic')])]) -
uploader(Uploader | None) -
maintainers(list[Maintainer]) -
tags(FAIR[Annotated[list[str], Field(examples=[('unet2d', 'pytorch', 'nucleus', 'segmentation', 'dsb2018')])]]) -
version(Version | None) -
version_comment(Annotated[str, MaxLen(512)] | None) -
format_version(Literal['0.3.4']) -
badges(list[BadgeDescr]) -
config(Config) -
type(Literal['dataset']) -
id(DatasetId | None) -
parent(DatasetId | None) -
source(FAIR[HttpUrl | None])
Validators:
-
_convert_from_older_format -
_convert
authors
pydantic-field
¤
authors: FAIR[list[Author]]
The authors are the creators of this resource description and the primary points of contact.
config
pydantic-field
¤
config: Config
A field for custom configuration that can contain any keys not present in the RDF spec.
This means you should not store, for example, a GitHub repo URL in config since there is a git_repo field.
Keys in config may be very specific to a tool or consumer software. To avoid conflicting definitions,
it is recommended to wrap added configuration into a sub-field named with the specific domain or tool name,
for example:
config:
giraffe_neckometer: # here is the domain name
length: 3837283
address:
home: zoo
imagej: # config specific to ImageJ
macro_dir: path/to/macro/file
snake_case for keys in config.
You may want to list linked files additionally under attachments to include them when packaging a resource.
(Packaging a resource means downloading/copying important linked files and creating a ZIP archive that contains
an altered rdf.yaml file with local references to the downloaded files.)
description
pydantic-field
¤
description: FAIR[
Annotated[
str,
MaxLen(1024),
warn(
MaxLen(512),
"Description longer than 512 characters.",
),
]
] = ""
A string containing a brief description.
documentation
pydantic-field
¤
documentation: FAIR[FileDescr_documentation | None] = None
Additional model documentation.
The recommended documentation source file name is README.md. An .md suffix is mandatory.
file_name
property
¤
file_name: FileName | None
File name of the bioimageio.yaml file the description was loaded from.
git_repo
pydantic-field
¤
git_repo: Annotated[
HttpUrl | None,
Field(
examples=[
"https://github.com/bioimage-io/spec-bioimage-io/tree/main/example_descriptions/models/unet2d_nuclei_broad"
]
),
] = None
A URL to the Git repository where the resource is being developed.
icon
pydantic-field
¤
icon: (
Annotated[str, Len(min_length=1, max_length=2)]
| FileDescr_package
| None
) = None
An icon for illustration, e.g. on bioimage.io
id
pydantic-field
¤
id: DatasetId | None = None
bioimage.io-wide unique resource identifier assigned by bioimage.io; version unspecific.
id_emoji
pydantic-field
¤
id_emoji: (
Annotated[
str,
Len(min_length=1, max_length=2),
Field(examples=["🦈", "🦥"]),
]
| None
) = None
UTF-8 emoji for display alongside the id.
implemented_format_version_tuple
class-attribute
¤
implemented_format_version_tuple: tuple[int, int, int]
license
pydantic-field
¤
license: FAIR[
Annotated[
LicenseId
| DeprecatedLicenseId
| None
| FileDescr_package,
Field(
union_mode="left_to_right",
examples=["CC0-1.0", "MIT", "BSD-2-Clause"],
),
]
] = None
A SPDX license identifier or a custom license file.
links
pydantic-field
¤
links: Annotated[
list[str],
Field(
examples=[
(
"ilastik/ilastik",
"deepimagej/deepimagej",
"zero/notebook_u-net_3d_zerocostdl4mic",
)
]
),
]
IDs of other bioimage.io resources
maintainers
pydantic-field
¤
maintainers: list[Maintainer]
Maintainers of this resource.
If not specified, authors are maintainers and at least some of them has to specify their github_user name
name
pydantic-field
¤
name: Annotated[
Annotated[
str,
RestrictCharacters(
string.ascii_letters + string.digits + "_+- ()"
),
],
MinLen(5),
MaxLen(128),
warn(
MaxLen(64), "Name longer than 64 characters.", INFO
),
]
A human-friendly name of the resource description. May only contains letters, digits, underscore, minus, parentheses and spaces.
parent
pydantic-field
¤
parent: DatasetId | None = None
The description from which this one is derived
root
property
¤
root: RootHttpUrl | DirectoryPath | ZipFile
The URL/Path prefix to resolve any relative paths with.
tags
pydantic-field
¤
tags: FAIR[
Annotated[
list[str],
Field(
examples=[
(
"unet2d",
"pytorch",
"nucleus",
"segmentation",
"dsb2018",
)
]
),
]
]
Associated tags
uploader
pydantic-field
¤
uploader: Uploader | None = None
The person who uploaded the model (e.g. to bioimage.io)
version
pydantic-field
¤
version: Version | None = None
The version of the resource following SemVer 2.0.
version_comment
pydantic-field
¤
version_comment: Annotated[str, MaxLen(512)] | None = None
A comment on the version of the resource.
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any)
Source code in src/bioimageio/spec/_internal/common_nodes.py
201 202 203 204 205 206 207 208 209 210 211 212 213 | |
convert_from_old_format_wo_validation
classmethod
¤
convert_from_old_format_wo_validation(
data: BioimageioYamlContent,
) -> None
Convert metadata following an older format version to this classes' format without validating the result.
Source code in src/bioimageio/spec/generic/v0_3.py
301 302 303 304 305 306 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get_package_content
¤
get_package_content(
local_files_only: bool = False,
) -> dict[FileName, FileDescr | BioimageioYamlContent]
Returns package content without creating the package.
Source code in src/bioimageio/spec/_internal/common_nodes.py
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 | |
load
classmethod
¤
load(
data: IncompleteDescrView,
context: ValidationContext | None = None,
) -> Self | InvalidDescr
factory method to create a resource description object
Source code in src/bioimageio/spec/_internal/common_nodes.py
226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | |
load_from_kwargs
classmethod
¤
load_from_kwargs(
context: ValidationContext | None = None,
*args: P.args,
**kwargs: P.kwargs,
) -> T | InvalidDescr
Source code in src/bioimageio/spec/_internal/common_nodes.py
215 216 217 218 219 220 221 222 223 224 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
package
¤
package(
dest: ZipFile | IO[bytes] | Path | str | None = None,
/,
local_files_only: bool = False,
) -> ZipFile
package the described resource as a zip archive
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
ZipFile | IO[bytes] | Path | str | None
|
(path/bytes stream of) destination zipfile |
None
|
Source code in src/bioimageio/spec/_internal/common_nodes.py
359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 | |
warn_about_tag_categories
classmethod
¤
warn_about_tag_categories(
value: list[str], info: ValidationInfo
) -> list[str]
Source code in src/bioimageio/spec/generic/v0_3.py
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 | |
DatasetId
¤
Bases: ResourceId
flowchart TD
bioimageio.spec.model.v0_5.DatasetId[DatasetId]
bioimageio.spec.generic.v0_3.ResourceId[ResourceId]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec.generic.v0_3.ResourceId --> bioimageio.spec.model.v0_5.DatasetId
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.generic.v0_3.ResourceId
click bioimageio.spec.model.v0_5.DatasetId href "" "bioimageio.spec.model.v0_5.DatasetId"
click bioimageio.spec.generic.v0_3.ResourceId href "" "bioimageio.spec.generic.v0_3.ResourceId"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
root_model: type[RootModel[Any]] = RootModel[
Annotated[
NotEmpty[str],
RestrictCharacters(
string.ascii_lowercase + string.digits + "_-/."
),
annotated_types.Predicate(
lambda s: (
not (
s.startswith("/") or s.endswith("/")
)
)
),
]
]
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
Datetime
¤
Bases: RootModel[Annotated[datetime, BeforeValidator(_validate_datetime), PrettyPlainSerializer(_serialize_datetime_json, when_used='json-unless-none')]]
flowchart TD
bioimageio.spec.model.v0_5.Datetime[Datetime]
click bioimageio.spec.model.v0_5.Datetime href "" "bioimageio.spec.model.v0_5.Datetime"
Timestamp in ISO 8601 format with a few restrictions listed here.
Methods:
| Name | Description |
|---|---|
now |
|
now
classmethod
¤
now()
Source code in src/bioimageio/spec/_internal/types.py
129 130 131 | |
DeprecatedLicenseId
¤
Bases: ValidatedString
flowchart TD
bioimageio.spec.model.v0_5.DeprecatedLicenseId[DeprecatedLicenseId]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.model.v0_5.DeprecatedLicenseId
click bioimageio.spec.model.v0_5.DeprecatedLicenseId href "" "bioimageio.spec.model.v0_5.DeprecatedLicenseId"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
DiscreteReproducibilityTolerance
pydantic-model
¤
Bases: _ReproducibilityToleranceBase[Literal[0], Literal[0]]
Show JSON schema:
{
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 1000,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.\n\nNote: Increased default mismatched elements per million compared to\n[`ReproducibilityTolerance`][ReproducibilityTolerance]/[`ContinuousReproducibilityTolerance`][ContinuousReproducibilityTolerance],\nsince a single pixel mismatch can be more significant than for continuous outputs with numeric tolerance.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"const": 0,
"default": 0,
"description": "Relative tolerance does not apply to discrete outputs",
"title": "Relative Tolerance",
"type": "integer"
},
"absolute_tolerance": {
"const": 0,
"default": 0,
"description": "Absolute tolerance does not apply to discrete outputs",
"title": "Absolute Tolerance",
"type": "integer"
},
"output_ids": {
"const": "any_discrete_output",
"default": "any_discrete_output",
"description": "Limits the output tensor IDs to all outputs of integer or boolean data type.",
"title": "Output Ids",
"type": "string"
}
},
"title": "model.v0_5.DiscreteReproducibilityTolerance",
"type": "object"
}
Fields:
-
weights_formats(Sequence[WeightsFormat]) -
output_ids(Literal['any_discrete_output']) -
relative_tolerance(Literal[0]) -
absolute_tolerance(Literal[0]) -
mismatched_elements_per_million(MismatchedElementsPerMillion)
absolute_tolerance
pydantic-field
¤
absolute_tolerance: Literal[0] = 0
Absolute tolerance does not apply to discrete outputs
mismatched_elements_per_million
pydantic-field
¤
mismatched_elements_per_million: MismatchedElementsPerMillion = 1000
Maximum number of mismatched elements/pixels per million to tolerate.
Note: Increased default mismatched elements per million compared to
ReproducibilityTolerance/ContinuousReproducibilityTolerance,
since a single pixel mismatch can be more significant than for continuous outputs with numeric tolerance.
output_ids
pydantic-field
¤
output_ids: Literal["any_discrete_output"] = (
"any_discrete_output"
)
Limits the output tensor IDs to all outputs of integer or boolean data type.
relative_tolerance
pydantic-field
¤
relative_tolerance: Literal[0] = 0
Relative tolerance does not apply to discrete outputs
weights_formats
pydantic-field
¤
weights_formats: Sequence[WeightsFormat] = ()
Limits the weights formats these details apply to.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
serialize
¤
serialize(
handler: SerializerFunctionWrapHandler,
) -> dict[str, Any]
explicitly serialize tolerance values
(even if they are default values and exclude_defaults=True).
Source code in src/bioimageio/spec/model/v0_5.py
3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 | |
Doi
¤
Bases: ValidatedString
flowchart TD
bioimageio.spec.model.v0_5.Doi[Doi]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.model.v0_5.Doi
click bioimageio.spec.model.v0_5.Doi href "" "bioimageio.spec.model.v0_5.Doi"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
A digital object identifier, see https://www.doi.org/
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
root_model: type[RootModel[Any]] = RootModel[
Annotated[str, StringConstraints(pattern=DOI_REGEX)]
]
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
EdgePadding
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"mode": {
"const": "edge",
"default": "edge",
"title": "Mode",
"type": "string"
}
},
"title": "model.v0_5.EdgePadding",
"type": "object"
}
Fields:
-
mode(Literal['edge'])
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
EnsureDtypeDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Cast the tensor data type to EnsureDtypeKwargs.dtype (if not matching).
This can for example be used to ensure the inner neural network model gets a different input tensor data type than the fully described bioimage.io model does.
Examples:
The described bioimage.io model (incl. preprocessing) accepts any float32-compatible tensor, normalizes it with percentiles and clipping and then casts it to uint8, which is what the neural network in this example expects. - in YAML
inputs:
- data:
type: float32 # described bioimage.io model is compatible with any float32 input tensor
preprocessing:
- id: scale_range
kwargs:
axes: ['y', 'x']
max_percentile: 99.8
min_percentile: 5.0
- id: clip
kwargs:
min: 0.0
max: 1.0
- id: ensure_dtype # the neural network of the model requires uint8
kwargs:
dtype: uint8
Show JSON schema:
{
"$defs": {
"EnsureDtypeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [EnsureDtypeDescr][]",
"properties": {
"dtype": {
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"title": "Dtype",
"type": "string"
}
},
"required": [
"dtype"
],
"title": "model.v0_5.EnsureDtypeKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "Cast the tensor data type to `EnsureDtypeKwargs.dtype` (if not matching).\n\nThis can for example be used to ensure the inner neural network model gets a\ndifferent input tensor data type than the fully described bioimage.io model does.\n\nExamples:\n The described bioimage.io model (incl. preprocessing) accepts any\n float32-compatible tensor, normalizes it with percentiles and clipping and then\n casts it to uint8, which is what the neural network in this example expects.\n - in YAML\n ```yaml\n inputs:\n - data:\n type: float32 # described bioimage.io model is compatible with any float32 input tensor\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n - id: clip\n kwargs:\n min: 0.0\n max: 1.0\n - id: ensure_dtype # the neural network of the model requires uint8\n kwargs:\n dtype: uint8\n ```\n - in Python:\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... ),\n ... ClipDescr(kwargs=ClipKwargs(min=0.0, max=1.0)),\n ... EnsureDtypeDescr(kwargs=EnsureDtypeKwargs(dtype=\"uint8\")),\n ... ]",
"properties": {
"id": {
"const": "ensure_dtype",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/EnsureDtypeKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.EnsureDtypeDescr",
"type": "object"
}
Fields:
-
id(Literal['ensure_dtype']) -
kwargs(EnsureDtypeKwargs)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
EnsureDtypeKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for EnsureDtypeDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [EnsureDtypeDescr][]",
"properties": {
"dtype": {
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"title": "Dtype",
"type": "string"
}
},
"required": [
"dtype"
],
"title": "model.v0_5.EnsureDtypeKwargs",
"type": "object"
}
Fields:
-
dtype(Literal['float32', 'float64', 'uint8', 'int8', 'uint16', 'int16', 'uint32', 'int32', 'uint64', 'int64', 'bool'])
dtype
pydantic-field
¤
dtype: Literal[
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool",
]
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
EnvironmentalImpact
pydantic-model
¤
Bases: Node
Environmental considerations for model training and deployment.
Carbon emissions can be estimated using the Machine Learning Impact calculator presented in Lacoste et al. (2019).
Show JSON schema:
{
"additionalProperties": true,
"description": "Environmental considerations for model training and deployment.\n\nCarbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).",
"properties": {
"hardware_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU/CPU specifications",
"title": "Hardware Type"
},
"hours_used": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total compute hours",
"title": "Hours Used"
},
"cloud_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If applicable",
"title": "Cloud Provider"
},
"compute_region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Geographic location",
"title": "Compute Region"
},
"co2_emitted": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "kg CO2 equivalent\n\nCarbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).",
"title": "Co2 Emitted"
}
},
"title": "model.v0_5.EnvironmentalImpact",
"type": "object"
}
Fields:
-
hardware_type(str | None) -
hours_used(float | None) -
cloud_provider(str | None) -
compute_region(str | None) -
co2_emitted(float | None)
co2_emitted
pydantic-field
¤
co2_emitted: float | None = None
kg CO2 equivalent
Carbon emissions can be estimated using the Machine Learning Impact calculator presented in Lacoste et al. (2019).
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
format_md
¤
format_md()
Filled Markdown template section following Hugging Face Model Card Template.
Source code in src/bioimageio/spec/model/v0_5.py
3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
Evaluation
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": true,
"properties": {
"model_id": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Model being evaluated.",
"title": "Model Id"
},
"dataset_id": {
"description": "Dataset used for evaluation.",
"minLength": 1,
"title": "DatasetId",
"type": "string"
},
"dataset_source": {
"description": "Source of the dataset.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
"dataset_role": {
"description": "Role of the dataset used for evaluation.\n\n- `train`: dataset was (part of) the training data\n- `validation`: dataset was (part of) the validation data used during training, e.g. used for model selection or hyperparameter tuning\n- `test`: dataset was (part of) the designated test data; not used during training or validation, but acquired from the same source/distribution as training data\n- `independent`: dataset is entirely independent test data; not used during training or validation, and acquired from a different source/distribution than training data\n- `unknown`: role of the dataset is unknown; choose this if you are not certain if (a subset) of the data was seen by the model during training.",
"enum": [
"train",
"validation",
"test",
"independent",
"unknown"
],
"title": "Dataset Role",
"type": "string"
},
"sample_count": {
"description": "Number of evaluated samples.",
"title": "Sample Count",
"type": "integer"
},
"evaluation_factors": {
"description": "(Abbreviations of) each evaluation factor.\n\nEvaluation factors are criteria along which model performance is evaluated, e.g. different image conditions\nlike 'low SNR', 'high cell density', or different biological conditions like 'cell type A', 'cell type B'.\nAn 'overall' factor may be included to summarize performance across all conditions.",
"items": {
"maxLength": 16,
"type": "string"
},
"title": "Evaluation Factors",
"type": "array"
},
"evaluation_factors_long": {
"description": "Descriptions (long form) of each evaluation factor.",
"items": {
"type": "string"
},
"title": "Evaluation Factors Long",
"type": "array"
},
"metrics": {
"description": "(Abbreviations of) metrics used for evaluation.",
"items": {
"maxLength": 16,
"type": "string"
},
"title": "Metrics",
"type": "array"
},
"metrics_long": {
"description": "Description of each metric used.",
"items": {
"type": "string"
},
"title": "Metrics Long",
"type": "array"
},
"results": {
"description": "Results for each metric (rows; outer list) and each evaluation factor (columns; inner list).",
"items": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
},
"type": "array"
},
"title": "Results",
"type": "array"
},
"results_summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Interpretation of results for general audience.\n\nConsider:\n - Overall model performance\n - Comparison to existing methods\n - Limitations and areas for improvement",
"title": "Results Summary"
}
},
"required": [
"dataset_id",
"dataset_source",
"dataset_role",
"sample_count",
"evaluation_factors",
"evaluation_factors_long",
"metrics",
"metrics_long",
"results"
],
"title": "model.v0_5.Evaluation",
"type": "object"
}
Fields:
-
model_id(ModelId | None) -
dataset_id(DatasetId) -
dataset_source(HttpUrl) -
dataset_role(Literal['train', 'validation', 'test', 'independent', 'unknown']) -
sample_count(int) -
evaluation_factors(list[Annotated[str, MaxLen(16)]]) -
evaluation_factors_long(list[str]) -
metrics(list[Annotated[str, MaxLen(16)]]) -
metrics_long(list[str]) -
results(list[list[str | float | int]]) -
results_summary(str | None)
Validators:
-
_validate_list_lengths
dataset_role
pydantic-field
¤
dataset_role: Literal[
"train", "validation", "test", "independent", "unknown"
]
Role of the dataset used for evaluation.
train: dataset was (part of) the training datavalidation: dataset was (part of) the validation data used during training, e.g. used for model selection or hyperparameter tuningtest: dataset was (part of) the designated test data; not used during training or validation, but acquired from the same source/distribution as training dataindependent: dataset is entirely independent test data; not used during training or validation, and acquired from a different source/distribution than training dataunknown: role of the dataset is unknown; choose this if you are not certain if (a subset) of the data was seen by the model during training.
evaluation_factors
pydantic-field
¤
evaluation_factors: list[Annotated[str, MaxLen(16)]]
(Abbreviations of) each evaluation factor.
Evaluation factors are criteria along which model performance is evaluated, e.g. different image conditions like 'low SNR', 'high cell density', or different biological conditions like 'cell type A', 'cell type B'. An 'overall' factor may be included to summarize performance across all conditions.
evaluation_factors_long
pydantic-field
¤
evaluation_factors_long: list[str]
Descriptions (long form) of each evaluation factor.
metrics
pydantic-field
¤
metrics: list[Annotated[str, MaxLen(16)]]
(Abbreviations of) metrics used for evaluation.
results
pydantic-field
¤
results: list[list[str | float | int]]
Results for each metric (rows; outer list) and each evaluation factor (columns; inner list).
results_summary
pydantic-field
¤
results_summary: str | None = None
Interpretation of results for general audience.
Consider
- Overall model performance
- Comparison to existing methods
- Limitations and areas for improvement
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
format_md
¤
format_md()
Source code in src/bioimageio/spec/model/v0_5.py
3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
FileDescr
pydantic-model
¤
Bases: Node
A file description
Show JSON schema:
{
"$defs": {
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
}
},
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
}
Fields:
-
source(FileSource) -
sha256(Sha256 | None)
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
FixedZeroMeanUnitVarianceAlongAxisKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for FixedZeroMeanUnitVarianceDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value(s) to normalize with.",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Mean",
"type": "array"
},
"std": {
"description": "The standard deviation value(s) to normalize with.\nSize must match `mean` values.",
"items": {
"minimum": 1e-06,
"type": "number"
},
"minItems": 1,
"title": "Std",
"type": "array"
},
"axis": {
"description": "The axis of the mean/std values to normalize each entry along that dimension\nseparately.",
"examples": [
"channel",
"index"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"mean",
"std",
"axis"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceAlongAxisKwargs",
"type": "object"
}
Fields:
-
mean(NotEmpty[list[float]]) -
std(NotEmpty[list[Annotated[float, Ge(1e-06)]]]) -
axis(Annotated[NonBatchAxisId, Field(examples=['channel', 'index'])])
Validators:
-
_mean_and_std_match
axis
pydantic-field
¤
axis: Annotated[
NonBatchAxisId, Field(examples=["channel", "index"])
]
The axis of the mean/std values to normalize each entry along that dimension separately.
std
pydantic-field
¤
std: NotEmpty[list[Annotated[float, Ge(1e-06)]]]
The standard deviation value(s) to normalize with.
Size must match mean values.
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
FixedZeroMeanUnitVarianceDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Subtract a given mean and divide by the standard deviation.
Normalize with fixed, precomputed values for
FixedZeroMeanUnitVarianceKwargs.mean and FixedZeroMeanUnitVarianceKwargs.std
Use FixedZeroMeanUnitVarianceAlongAxisKwargs for independent scaling along given
axes.
Examples:
-
scalar value for whole tensor
- in YAML
preprocessing: - id: fixed_zero_mean_unit_variance kwargs: mean: 103.5 std: 13.7 - in Python
preprocessing = [FixedZeroMeanUnitVarianceDescr( ... kwargs=FixedZeroMeanUnitVarianceKwargs(mean=103.5, std=13.7) ... )]
- in YAML
-
independently along an axis
- in YAML
preprocessing: - id: fixed_zero_mean_unit_variance kwargs: axis: channel mean: [101.5, 102.5, 103.5] std: [11.7, 12.7, 13.7] - in Python
preprocessing = [FixedZeroMeanUnitVarianceDescr( ... kwargs=FixedZeroMeanUnitVarianceAlongAxisKwargs( ... axis=AxisId("channel"), ... mean=[101.5, 102.5, 103.5], ... std=[11.7, 12.7, 13.7], ... ) ... )]
- in YAML
Show JSON schema:
{
"$defs": {
"FixedZeroMeanUnitVarianceAlongAxisKwargs": {
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value(s) to normalize with.",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Mean",
"type": "array"
},
"std": {
"description": "The standard deviation value(s) to normalize with.\nSize must match `mean` values.",
"items": {
"minimum": 1e-06,
"type": "number"
},
"minItems": 1,
"title": "Std",
"type": "array"
},
"axis": {
"description": "The axis of the mean/std values to normalize each entry along that dimension\nseparately.",
"examples": [
"channel",
"index"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"mean",
"std",
"axis"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceAlongAxisKwargs",
"type": "object"
},
"FixedZeroMeanUnitVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value to normalize with.",
"title": "Mean",
"type": "number"
},
"std": {
"description": "The standard deviation value to normalize with.",
"minimum": 1e-06,
"title": "Std",
"type": "number"
}
},
"required": [
"mean",
"std"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "Subtract a given mean and divide by the standard deviation.\n\nNormalize with fixed, precomputed values for\n`FixedZeroMeanUnitVarianceKwargs.mean` and `FixedZeroMeanUnitVarianceKwargs.std`\nUse `FixedZeroMeanUnitVarianceAlongAxisKwargs` for independent scaling along given\naxes.\n\nExamples:\n1. scalar value for whole tensor\n - in YAML\n ```yaml\n preprocessing:\n - id: fixed_zero_mean_unit_variance\n kwargs:\n mean: 103.5\n std: 13.7\n ```\n - in Python\n >>> preprocessing = [FixedZeroMeanUnitVarianceDescr(\n ... kwargs=FixedZeroMeanUnitVarianceKwargs(mean=103.5, std=13.7)\n ... )]\n\n2. independently along an axis\n - in YAML\n ```yaml\n preprocessing:\n - id: fixed_zero_mean_unit_variance\n kwargs:\n axis: channel\n mean: [101.5, 102.5, 103.5]\n std: [11.7, 12.7, 13.7]\n ```\n - in Python\n >>> preprocessing = [FixedZeroMeanUnitVarianceDescr(\n ... kwargs=FixedZeroMeanUnitVarianceAlongAxisKwargs(\n ... axis=AxisId(\"channel\"),\n ... mean=[101.5, 102.5, 103.5],\n ... std=[11.7, 12.7, 13.7],\n ... )\n ... )]",
"properties": {
"id": {
"const": "fixed_zero_mean_unit_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceKwargs"
},
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceDescr",
"type": "object"
}
Fields:
-
id(Literal['fixed_zero_mean_unit_variance']) -
kwargs(FixedZeroMeanUnitVarianceKwargs | FixedZeroMeanUnitVarianceAlongAxisKwargs)
id
pydantic-field
¤
id: Literal["fixed_zero_mean_unit_variance"] = (
"fixed_zero_mean_unit_variance"
)
implemented_id
class-attribute
¤
implemented_id: Literal["fixed_zero_mean_unit_variance"] = (
"fixed_zero_mean_unit_variance"
)
kwargs
pydantic-field
¤
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
FixedZeroMeanUnitVarianceKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for FixedZeroMeanUnitVarianceDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value to normalize with.",
"title": "Mean",
"type": "number"
},
"std": {
"description": "The standard deviation value to normalize with.",
"minimum": 1e-06,
"title": "Std",
"type": "number"
}
},
"required": [
"mean",
"std"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceKwargs",
"type": "object"
}
Fields:
std
pydantic-field
¤
std: Annotated[float, Ge(1e-06)]
The standard deviation value to normalize with.
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
HttpUrl
¤
Bases: RootHttpUrl
flowchart TD
bioimageio.spec.model.v0_5.HttpUrl[HttpUrl]
bioimageio.spec._internal.root_url.RootHttpUrl[RootHttpUrl]
bioimageio.spec._internal.root_url._RootUrl[_RootUrl]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.root_url.RootHttpUrl --> bioimageio.spec.model.v0_5.HttpUrl
bioimageio.spec._internal.root_url._RootUrl --> bioimageio.spec._internal.root_url.RootHttpUrl
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec._internal.root_url._RootUrl
click bioimageio.spec.model.v0_5.HttpUrl href "" "bioimageio.spec.model.v0_5.HttpUrl"
click bioimageio.spec._internal.root_url.RootHttpUrl href "" "bioimageio.spec._internal.root_url.RootHttpUrl"
click bioimageio.spec._internal.root_url._RootUrl href "" "bioimageio.spec._internal.root_url._RootUrl"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
A URL with the HTTP or HTTPS scheme.
-
API Reference
spec
-
v0_2RelativeFilePath -
v0_2RelativeFilePath -
v0_2RelativeFilePath -
v0_2RelativeFilePath -
v0_3RelativeFilePath -
v0_3RelativeFilePath -
v0_3RelativeFilePath -
v0_3RelativeFilePath -
v0_4RelativeFilePath -
v0_5RelativeFilePath -
API Reference
commonRelativeFilePath
-
v0_2NotebookSource -
v0_3NotebookSource -
API Reference
commonFileSource
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
__truediv__ |
|
absolute |
analog to |
exists |
True if URL is available |
Attributes:
| Name | Type | Description |
|---|---|---|
host |
str | None
|
|
parent |
RootHttpUrl
|
|
parents |
Iterable[RootHttpUrl]
|
iterate over all URL parents (max 100) |
path |
str | None
|
|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
scheme |
str
|
|
suffix |
str
|
|
suffixes |
list[str]
|
|
root_model
class-attribute
¤
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
__truediv__
¤
__truediv__(other: str) -> RootHttpUrl
Source code in src/bioimageio/spec/_internal/root_url.py
52 53 54 55 56 57 58 59 60 61 62 63 64 | |
absolute
¤
absolute()
analog to absolute method of pathlib.
Source code in src/bioimageio/spec/_internal/root_url.py
22 23 24 | |
exists
¤
exists()
True if URL is available
Source code in src/bioimageio/spec/_internal/url.py
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | |
Identifier
¤
Bases: ValidatedString
flowchart TD
bioimageio.spec.model.v0_5.Identifier[Identifier]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.model.v0_5.Identifier
click bioimageio.spec.model.v0_5.Identifier href "" "bioimageio.spec.model.v0_5.Identifier"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
IndexAxisBase
pydantic-model
¤
Bases: AxisBase
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"id": {
"default": "index",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "index",
"title": "Type",
"type": "string"
}
},
"required": [
"type"
],
"title": "model.v0_5.IndexAxisBase",
"type": "object"
}
Fields:
-
description(Annotated[str, MaxLen(128)]) -
type(Literal['index']) -
id(NonBatchAxisId)
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
An axis id unique across all axes of one tensor.
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
IndexInputAxis
pydantic-model
¤
Bases: IndexAxisBase, _WithInputAxisSize
Show JSON schema:
{
"$defs": {
"ParameterizedSize": {
"additionalProperties": false,
"description": "Describes a range of valid tensor axis sizes as `size = min + n*step`.\n\n- **min** and **step** are given by the model description.\n- All blocksize paramters n = 0,1,2,... yield a valid `size`.\n- A greater blocksize paramter n = 0,1,2,... results in a greater **size**.\n This allows to adjust the axis size more generically.",
"properties": {
"min": {
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"step": {
"exclusiveMinimum": 0,
"title": "Step",
"type": "integer"
}
},
"required": [
"min",
"step"
],
"title": "model.v0_5.ParameterizedSize",
"type": "object"
},
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "index",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "index",
"title": "Type",
"type": "string"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.IndexInputAxis",
"type": "object"
}
Fields:
-
size(Annotated[Annotated[int, Gt(0)] | ParameterizedSize | SizeReference, Field(examples=[10, ParameterizedSize(min=32, step=16).model_dump(mode='json'), {'tensor_id': 't', 'axis_id': 'a', 'offset': 5}])]) -
id(NonBatchAxisId) -
description(Annotated[str, MaxLen(128)]) -
type(Literal['index']) -
concatenable(bool)
concatenable
pydantic-field
¤
concatenable: bool = False
If a model has a concatenable input axis, it can be processed blockwise,
splitting a longer sample axis into blocks matching its input tensor description.
Output axes are concatenable if they have a SizeReference to a concatenable
input axis.
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
An axis id unique across all axes of one tensor.
size
pydantic-field
¤
size: Annotated[
Annotated[int, Gt(0)]
| ParameterizedSize
| SizeReference,
Field(
examples=[
10,
ParameterizedSize(min=32, step=16).model_dump(
mode="json"
),
{"tensor_id": "t", "axis_id": "a", "offset": 5},
]
),
]
The size/length of this axis can be specified as - fixed integer - parameterized series of valid sizes (ParameterizedSize) - reference to another axis with an optional offset (SizeReference)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
IndexOutputAxis
pydantic-model
¤
Bases: IndexAxisBase
Show JSON schema:
{
"$defs": {
"DataDependentSize": {
"additionalProperties": false,
"properties": {
"min": {
"default": 1,
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"max": {
"anyOf": [
{
"exclusiveMinimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max"
}
},
"title": "model.v0_5.DataDependentSize",
"type": "object"
},
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"id": {
"default": "index",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "index",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
},
{
"$ref": "#/$defs/DataDependentSize"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset ([SizeReference][])\n- data dependent size using [DataDependentSize][] (size is only known after model inference)",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
}
},
"required": [
"type",
"size"
],
"title": "model.v0_5.IndexOutputAxis",
"type": "object"
}
Fields:
-
id(NonBatchAxisId) -
description(Annotated[str, MaxLen(128)]) -
type(Literal['index']) -
size(Annotated[Annotated[int, Gt(0)] | SizeReference | DataDependentSize, Field(examples=[10, {'tensor_id': 't', 'axis_id': 'a', 'offset': 5}])])
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
An axis id unique across all axes of one tensor.
size
pydantic-field
¤
size: Annotated[
Annotated[int, Gt(0)]
| SizeReference
| DataDependentSize,
Field(
examples=[
10,
{"tensor_id": "t", "axis_id": "a", "offset": 5},
]
),
]
The size/length of this axis can be specified as - fixed integer - reference to another axis with an optional offset (SizeReference) - data dependent size using DataDependentSize (size is only known after model inference)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
InputTensorDescr
pydantic-model
¤
Bases: TensorDescrBase[InputAxis]
Show JSON schema:
{
"$defs": {
"BatchAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "batch",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "batch",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"const": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The batch size may be fixed to 1,\notherwise (the default) it may be chosen arbitrarily depending on available memory",
"title": "Size"
}
},
"required": [
"type"
],
"title": "model.v0_5.BatchAxis",
"type": "object"
},
"BinarizeAlongAxisKwargs": {
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold values along `axis`",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Threshold",
"type": "array"
},
"axis": {
"description": "The `threshold` axis",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"threshold",
"axis"
],
"title": "model.v0_5.BinarizeAlongAxisKwargs",
"type": "object"
},
"BinarizeDescr": {
"additionalProperties": false,
"description": "Binarize the tensor with a fixed threshold.\n\nValues above [BinarizeKwargs.threshold][]/[BinarizeAlongAxisKwargs.threshold][]\nwill be set to one, values below the threshold to zero.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: binarize\n kwargs:\n axis: 'channel'\n threshold: [0.25, 0.5, 0.75]\n ```\n- in Python:\n\n >>> postprocessing = [BinarizeDescr(\n ... kwargs=BinarizeAlongAxisKwargs(\n ... axis=AxisId('channel'),\n ... threshold=[0.25, 0.5, 0.75],\n ... )\n ... )]",
"properties": {
"id": {
"const": "binarize",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/BinarizeKwargs"
},
{
"$ref": "#/$defs/BinarizeAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.BinarizeDescr",
"type": "object"
},
"BinarizeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold",
"title": "Threshold",
"type": "number"
}
},
"required": [
"threshold"
],
"title": "model.v0_5.BinarizeKwargs",
"type": "object"
},
"ChannelAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "channel",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "channel",
"title": "Type",
"type": "string"
},
"channel_names": {
"description": "Name/label for each channel. The number of channels is given by `len(channel_names)`.",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Channel Names",
"type": "array"
}
},
"required": [
"type",
"channel_names"
],
"title": "model.v0_5.ChannelAxis",
"type": "object"
},
"ClipDescr": {
"additionalProperties": false,
"description": "Set tensor values below min to min and above max to max.\n\nSee `ScaleRangeDescr` for examples.",
"properties": {
"id": {
"const": "clip",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ClipKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ClipDescr",
"type": "object"
},
"ClipKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ClipDescr][]",
"properties": {
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum value for clipping.\n\nExclusive with [min_percentile][]",
"title": "Min"
},
"min_percentile": {
"anyOf": [
{
"exclusiveMaximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum percentile for clipping.\n\nExclusive with [min][].\n\nIn range [0, 100).",
"title": "Min Percentile"
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum value for clipping.\n\nExclusive with `max_percentile`.",
"title": "Max"
},
"max_percentile": {
"anyOf": [
{
"exclusiveMinimum": 1,
"maximum": 100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum percentile for clipping.\n\nExclusive with `max`.\n\nIn range (1, 100].",
"title": "Max Percentile"
},
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to determine percentiles jointly,\n\ni.e. axes to reduce to compute min/max from `min_percentile`/`max_percentile`.\nFor example to clip 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape with clipped values per channel, specify `axes=('batch', 'x', 'y')`.\nTo clip samples independently, leave out the 'batch' axis.\n\nOnly valid if `min_percentile` and/or `max_percentile` are set.\n\nDefault: Compute percentiles over all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
}
},
"title": "model.v0_5.ClipKwargs",
"type": "object"
},
"ConstantPadding": {
"additionalProperties": false,
"properties": {
"mode": {
"const": "constant",
"default": "constant",
"title": "Mode",
"type": "string"
},
"value": {
"anyOf": [
{
"type": "integer"
},
{
"type": "number"
}
],
"default": 0,
"title": "Value"
}
},
"title": "model.v0_5.ConstantPadding",
"type": "object"
},
"EdgePadding": {
"additionalProperties": false,
"properties": {
"mode": {
"const": "edge",
"default": "edge",
"title": "Mode",
"type": "string"
}
},
"title": "model.v0_5.EdgePadding",
"type": "object"
},
"EnsureDtypeDescr": {
"additionalProperties": false,
"description": "Cast the tensor data type to `EnsureDtypeKwargs.dtype` (if not matching).\n\nThis can for example be used to ensure the inner neural network model gets a\ndifferent input tensor data type than the fully described bioimage.io model does.\n\nExamples:\n The described bioimage.io model (incl. preprocessing) accepts any\n float32-compatible tensor, normalizes it with percentiles and clipping and then\n casts it to uint8, which is what the neural network in this example expects.\n - in YAML\n ```yaml\n inputs:\n - data:\n type: float32 # described bioimage.io model is compatible with any float32 input tensor\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n - id: clip\n kwargs:\n min: 0.0\n max: 1.0\n - id: ensure_dtype # the neural network of the model requires uint8\n kwargs:\n dtype: uint8\n ```\n - in Python:\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... ),\n ... ClipDescr(kwargs=ClipKwargs(min=0.0, max=1.0)),\n ... EnsureDtypeDescr(kwargs=EnsureDtypeKwargs(dtype=\"uint8\")),\n ... ]",
"properties": {
"id": {
"const": "ensure_dtype",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/EnsureDtypeKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.EnsureDtypeDescr",
"type": "object"
},
"EnsureDtypeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [EnsureDtypeDescr][]",
"properties": {
"dtype": {
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"title": "Dtype",
"type": "string"
}
},
"required": [
"dtype"
],
"title": "model.v0_5.EnsureDtypeKwargs",
"type": "object"
},
"FileDescr": {
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
},
"FixedZeroMeanUnitVarianceAlongAxisKwargs": {
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value(s) to normalize with.",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Mean",
"type": "array"
},
"std": {
"description": "The standard deviation value(s) to normalize with.\nSize must match `mean` values.",
"items": {
"minimum": 1e-06,
"type": "number"
},
"minItems": 1,
"title": "Std",
"type": "array"
},
"axis": {
"description": "The axis of the mean/std values to normalize each entry along that dimension\nseparately.",
"examples": [
"channel",
"index"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"mean",
"std",
"axis"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceAlongAxisKwargs",
"type": "object"
},
"FixedZeroMeanUnitVarianceDescr": {
"additionalProperties": false,
"description": "Subtract a given mean and divide by the standard deviation.\n\nNormalize with fixed, precomputed values for\n`FixedZeroMeanUnitVarianceKwargs.mean` and `FixedZeroMeanUnitVarianceKwargs.std`\nUse `FixedZeroMeanUnitVarianceAlongAxisKwargs` for independent scaling along given\naxes.\n\nExamples:\n1. scalar value for whole tensor\n - in YAML\n ```yaml\n preprocessing:\n - id: fixed_zero_mean_unit_variance\n kwargs:\n mean: 103.5\n std: 13.7\n ```\n - in Python\n >>> preprocessing = [FixedZeroMeanUnitVarianceDescr(\n ... kwargs=FixedZeroMeanUnitVarianceKwargs(mean=103.5, std=13.7)\n ... )]\n\n2. independently along an axis\n - in YAML\n ```yaml\n preprocessing:\n - id: fixed_zero_mean_unit_variance\n kwargs:\n axis: channel\n mean: [101.5, 102.5, 103.5]\n std: [11.7, 12.7, 13.7]\n ```\n - in Python\n >>> preprocessing = [FixedZeroMeanUnitVarianceDescr(\n ... kwargs=FixedZeroMeanUnitVarianceAlongAxisKwargs(\n ... axis=AxisId(\"channel\"),\n ... mean=[101.5, 102.5, 103.5],\n ... std=[11.7, 12.7, 13.7],\n ... )\n ... )]",
"properties": {
"id": {
"const": "fixed_zero_mean_unit_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceKwargs"
},
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceDescr",
"type": "object"
},
"FixedZeroMeanUnitVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value to normalize with.",
"title": "Mean",
"type": "number"
},
"std": {
"description": "The standard deviation value to normalize with.",
"minimum": 1e-06,
"title": "Std",
"type": "number"
}
},
"required": [
"mean",
"std"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceKwargs",
"type": "object"
},
"IndexInputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "index",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "index",
"title": "Type",
"type": "string"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.IndexInputAxis",
"type": "object"
},
"IntervalOrRatioDataDescr": {
"additionalProperties": false,
"properties": {
"type": {
"default": "float32",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64"
],
"examples": [
"float32",
"float64",
"uint8",
"uint16"
],
"title": "Type",
"type": "string"
},
"range": {
"default": [
null,
null
],
"description": "Tuple `(minimum, maximum)` specifying the allowed range of the data in this tensor.\n`None` corresponds to min/max of what can be expressed by **type**.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
],
"title": "Range",
"type": "array"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
}
],
"default": "arbitrary unit",
"title": "Unit"
},
"scale": {
"default": 1.0,
"description": "Scale for data on an interval (or ratio) scale.",
"title": "Scale",
"type": "number"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Offset for data on a ratio scale.",
"title": "Offset"
}
},
"title": "model.v0_5.IntervalOrRatioDataDescr",
"type": "object"
},
"NominalOrOrdinalDataDescr": {
"additionalProperties": false,
"properties": {
"values": {
"anyOf": [
{
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "boolean"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
}
],
"description": "A fixed set of nominal or an ascending sequence of ordinal values.\nIn this case `data.type` is required to be an unsigend integer type, e.g. 'uint8'.\nString `values` are interpreted as labels for tensor values 0, ..., N.\nNote: as YAML 1.2 does not natively support a \"set\" datatype,\nnominal values should be given as a sequence (aka list/array) as well.",
"title": "Values"
},
"type": {
"default": "uint8",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"examples": [
"float32",
"uint8",
"uint16",
"int64",
"bool"
],
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
}
},
"required": [
"values"
],
"title": "model.v0_5.NominalOrOrdinalDataDescr",
"type": "object"
},
"ParameterizedSize": {
"additionalProperties": false,
"description": "Describes a range of valid tensor axis sizes as `size = min + n*step`.\n\n- **min** and **step** are given by the model description.\n- All blocksize paramters n = 0,1,2,... yield a valid `size`.\n- A greater blocksize paramter n = 0,1,2,... results in a greater **size**.\n This allows to adjust the axis size more generically.",
"properties": {
"min": {
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"step": {
"exclusiveMinimum": 0,
"title": "Step",
"type": "integer"
}
},
"required": [
"min",
"step"
],
"title": "model.v0_5.ParameterizedSize",
"type": "object"
},
"ReflectPadding": {
"additionalProperties": false,
"properties": {
"mode": {
"const": "reflect",
"default": "reflect",
"title": "Mode",
"type": "string"
}
},
"title": "model.v0_5.ReflectPadding",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"ScaleLinearAlongAxisKwargs": {
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"axis": {
"description": "The axis of gain and offset values.",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"gain": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 0.0,
"description": "additive term",
"title": "Offset"
}
},
"required": [
"axis"
],
"title": "model.v0_5.ScaleLinearAlongAxisKwargs",
"type": "object"
},
"ScaleLinearDescr": {
"additionalProperties": false,
"description": "Fixed linear scaling.\n\nExamples:\n 1. Scale with scalar gain and offset\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_linear\n kwargs:\n gain: 2.0\n offset: 3.0\n ```\n - in Python:\n\n >>> preprocessing = [\n ... ScaleLinearDescr(kwargs=ScaleLinearKwargs(gain= 2.0, offset=3.0))\n ... ]\n\n 2. Independent scaling along an axis\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_linear\n kwargs:\n axis: 'channel'\n gain: [1.0, 2.0, 3.0]\n ```\n - in Python:\n\n >>> preprocessing = [\n ... ScaleLinearDescr(\n ... kwargs=ScaleLinearAlongAxisKwargs(\n ... axis=AxisId(\"channel\"),\n ... gain=[1.0, 2.0, 3.0],\n ... )\n ... )\n ... ]",
"properties": {
"id": {
"const": "scale_linear",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/ScaleLinearKwargs"
},
{
"$ref": "#/$defs/ScaleLinearAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ScaleLinearDescr",
"type": "object"
},
"ScaleLinearKwargs": {
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"gain": {
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain",
"type": "number"
},
"offset": {
"default": 0.0,
"description": "additive term",
"title": "Offset",
"type": "number"
}
},
"title": "model.v0_5.ScaleLinearKwargs",
"type": "object"
},
"ScaleRangeDescr": {
"additionalProperties": false,
"description": "Scale with percentiles.\n\nExamples:\n1. Scale linearly to map 5th percentile to 0 and 99.8th percentile to 1.0\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n ```\n - in Python\n\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... )\n ... ]\n\n 2. Combine the above scaling with additional clipping to clip values outside the range given by the percentiles.\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n - id: clip\n kwargs:\n min: 0.0\n max: 1.0\n ```\n - in Python\n\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... ),\n ... ClipDescr(\n ... kwargs=ClipKwargs(\n ... min=0.0,\n ... max=1.0,\n ... )\n ... ),\n ... ]",
"properties": {
"id": {
"const": "scale_range",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ScaleRangeKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.ScaleRangeDescr",
"type": "object"
},
"ScaleRangeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ScaleRangeDescr][]\n\nFor `min_percentile`=0.0 (the default) and `max_percentile`=100 (the default)\nthis processing step normalizes data to the [0, 1] intervall.\nFor other percentiles the normalized values will partially be outside the [0, 1]\nintervall. Use `ScaleRange` followed by `ClipDescr` if you want to limit the\nnormalized values to a range.",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute the min/max percentile value.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize samples independently, leave out the \"batch\" axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"min_percentile": {
"default": 0.0,
"description": "The lower percentile used to determine the value to align with zero.",
"exclusiveMaximum": 100,
"minimum": 0,
"title": "Min Percentile",
"type": "number"
},
"max_percentile": {
"default": 100.0,
"description": "The upper percentile used to determine the value to align with one.\nHas to be bigger than `min_percentile`.\nThe range is 1 to 100 instead of 0 to 100 to avoid mistakenly\naccepting percentiles specified in the range 0.0 to 1.0.",
"exclusiveMinimum": 1,
"maximum": 100,
"title": "Max Percentile",
"type": "number"
},
"eps": {
"default": 1e-06,
"description": "Epsilon for numeric stability.\n`out = (tensor - v_lower) / (v_upper - v_lower + eps)`;\nwith `v_lower,v_upper` values at the respective percentiles.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
},
"reference_tensor": {
"anyOf": [
{
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the unprocessed input tensor to compute the percentiles from.\nDefault: The tensor itself.",
"title": "Reference Tensor"
}
},
"title": "model.v0_5.ScaleRangeKwargs",
"type": "object"
},
"SigmoidDescr": {
"additionalProperties": false,
"description": "The logistic sigmoid function, a.k.a. expit function.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: sigmoid\n ```\n- in Python:\n\n >>> postprocessing = [SigmoidDescr()]",
"properties": {
"id": {
"const": "sigmoid",
"title": "Id",
"type": "string"
}
},
"required": [
"id"
],
"title": "model.v0_5.SigmoidDescr",
"type": "object"
},
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
},
"SoftmaxDescr": {
"additionalProperties": false,
"description": "The softmax function.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: softmax\n kwargs:\n axis: channel\n ```\n- in Python:\n\n >>> postprocessing = [SoftmaxDescr(kwargs=SoftmaxKwargs(axis=AxisId(\"channel\")))]",
"properties": {
"id": {
"const": "softmax",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/SoftmaxKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.SoftmaxDescr",
"type": "object"
},
"SoftmaxKwargs": {
"additionalProperties": false,
"description": "key word arguments for [SoftmaxDescr][]",
"properties": {
"axis": {
"default": "channel",
"description": "The axis to apply the softmax function along.\nNote:\n Defaults to 'channel' axis\n (which may not exist, in which case\n a different axis id has to be specified).",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"title": "model.v0_5.SoftmaxKwargs",
"type": "object"
},
"SpaceInputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.SpaceInputAxis",
"type": "object"
},
"SymmetricPadding": {
"additionalProperties": false,
"properties": {
"mode": {
"const": "symmetric",
"default": "symmetric",
"title": "Mode",
"type": "string"
}
},
"title": "model.v0_5.SymmetricPadding",
"type": "object"
},
"TimeInputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.TimeInputAxis",
"type": "object"
},
"ZeroMeanUnitVarianceDescr": {
"additionalProperties": false,
"description": "Subtract mean and divide by variance.\n\nExamples:\n Subtract tensor mean and variance\n - in YAML\n ```yaml\n preprocessing:\n - id: zero_mean_unit_variance\n ```\n - in Python\n >>> preprocessing = [ZeroMeanUnitVarianceDescr()]",
"properties": {
"id": {
"const": "zero_mean_unit_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ZeroMeanUnitVarianceKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.ZeroMeanUnitVarianceDescr",
"type": "object"
},
"ZeroMeanUnitVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ZeroMeanUnitVarianceDescr][]",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize each sample independently leave out the 'batch' axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"eps": {
"default": 1e-06,
"description": "epsilon for numeric stability: `out = (tensor - mean) / (std + eps)`.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
}
},
"title": "model.v0_5.ZeroMeanUnitVarianceKwargs",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"id": {
"default": "input",
"description": "Input tensor id.\nNo duplicates are allowed across all inputs and outputs.",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"description": {
"default": "",
"description": "free text description",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"axes": {
"description": "tensor axes",
"items": {
"discriminator": {
"mapping": {
"batch": "#/$defs/BatchAxis",
"channel": "#/$defs/ChannelAxis",
"index": "#/$defs/IndexInputAxis",
"space": "#/$defs/SpaceInputAxis",
"time": "#/$defs/TimeInputAxis"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/BatchAxis"
},
{
"$ref": "#/$defs/ChannelAxis"
},
{
"$ref": "#/$defs/IndexInputAxis"
},
{
"$ref": "#/$defs/TimeInputAxis"
},
{
"$ref": "#/$defs/SpaceInputAxis"
}
]
},
"minItems": 1,
"title": "Axes",
"type": "array"
},
"test_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "An example tensor to use for testing.\nUsing the model with the test input tensors is expected to yield the test output tensors.\nEach test tensor has be a an ndarray in the\n[numpy.lib file format](https://numpy.org/doc/stable/reference/generated/numpy.lib.format.html#module-numpy.lib.format).\nThe file extension must be '.npy'."
},
"sample_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "A sample tensor to illustrate a possible input/output for the model,\nThe sample image primarily serves to inform a human user about an example use case\nand is typically stored as .hdf5, .png or .tiff.\nIt has to be readable by the [imageio library](https://imageio.readthedocs.io/en/stable/formats/index.html#supported-formats)\n(numpy's `.npy` format is not supported).\nThe image dimensionality has to match the number of axes specified in this tensor description."
},
"data": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
},
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
}
]
},
"minItems": 1,
"type": "array"
}
],
"default": {
"type": "float32",
"range": [
null,
null
],
"unit": "arbitrary unit",
"scale": 1.0,
"offset": null
},
"description": "Description of the tensor's data values, optionally per channel.\nIf specified per channel, the data `type` needs to match across channels.",
"title": "Data"
},
"output_of": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If this input tensor is the output of another model, specify the model id here.\nThis model's input id must match the output id of the referenced model.",
"title": "Output Of"
},
"optional": {
"default": false,
"description": "indicates that this tensor may be `None`",
"title": "Optional",
"type": "boolean"
},
"pad": {
"anyOf": [
{
"$ref": "#/$defs/ConstantPadding"
},
{
"$ref": "#/$defs/EdgePadding"
},
{
"$ref": "#/$defs/ReflectPadding"
},
{
"$ref": "#/$defs/SymmetricPadding"
},
{
"type": "null"
}
],
"default": null,
"description": "Explicitly specify how to pad this input tensor.\n\nUse `axes[i].pad` to specify padding width.\n\nNote:\n Non-blockwise sample prediction only applies padding for axes with a `pad` specification.",
"title": "Pad"
},
"preprocessing": {
"description": "Description of how this input should be preprocessed.\n\nnotes:\n- If preprocessing does not start with an 'ensure_dtype' entry, it is added\n to ensure an input tensor's data type matches the input tensor's data description.\n- If preprocessing does not end with an 'ensure_dtype' or 'binarize' entry, an\n 'ensure_dtype' step is added to ensure preprocessing steps are not unintentionally\n changing the data type.",
"items": {
"discriminator": {
"mapping": {
"binarize": "#/$defs/BinarizeDescr",
"clip": "#/$defs/ClipDescr",
"ensure_dtype": "#/$defs/EnsureDtypeDescr",
"fixed_zero_mean_unit_variance": "#/$defs/FixedZeroMeanUnitVarianceDescr",
"scale_linear": "#/$defs/ScaleLinearDescr",
"scale_range": "#/$defs/ScaleRangeDescr",
"sigmoid": "#/$defs/SigmoidDescr",
"softmax": "#/$defs/SoftmaxDescr",
"zero_mean_unit_variance": "#/$defs/ZeroMeanUnitVarianceDescr"
},
"propertyName": "id"
},
"oneOf": [
{
"$ref": "#/$defs/BinarizeDescr"
},
{
"$ref": "#/$defs/ClipDescr"
},
{
"$ref": "#/$defs/EnsureDtypeDescr"
},
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceDescr"
},
{
"$ref": "#/$defs/ScaleLinearDescr"
},
{
"$ref": "#/$defs/ScaleRangeDescr"
},
{
"$ref": "#/$defs/SigmoidDescr"
},
{
"$ref": "#/$defs/SoftmaxDescr"
},
{
"$ref": "#/$defs/ZeroMeanUnitVarianceDescr"
}
]
},
"title": "Preprocessing",
"type": "array"
}
},
"required": [
"axes"
],
"title": "model.v0_5.InputTensorDescr",
"type": "object"
}
Fields:
-
description(Annotated[str, MaxLen(128)]) -
axes(NotEmpty[Sequence[IO_AxisT]]) -
test_tensor(FAIR[FileDescr_package | None]) -
sample_tensor(FAIR[FileDescr_package | None]) -
data(TensorDataDescr | NotEmpty[Sequence[TensorDataDescr]]) -
id(TensorId) -
output_of(ModelId | None) -
optional(bool) -
pad(Padding | None) -
preprocessing(list[PreprocessingDescr])
Validators:
-
_validate_axes→axes -
_validate_sample_tensor -
_check_data_type_across_channels→data -
_check_data_matches_channelaxis -
_validate_output_of -
_validate_preprocessing_kwargs
data
pydantic-field
¤
data: TensorDataDescr | NotEmpty[Sequence[TensorDataDescr]]
Description of the tensor's data values, optionally per channel.
If specified per channel, the data type needs to match across channels.
dtype
property
¤
dtype: Literal[
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool",
]
dtype as specified under data.type or data[i].type
id
pydantic-field
¤
id: TensorId
Input tensor id. No duplicates are allowed across all inputs and outputs.
output_of
pydantic-field
¤
output_of: ModelId | None = None
If this input tensor is the output of another model, specify the model id here. This model's input id must match the output id of the referenced model.
pad
pydantic-field
¤
pad: Padding | None = None
Explicitly specify how to pad this input tensor.
Use axes[i].pad to specify padding width.
Note
Non-blockwise sample prediction only applies padding for axes with a pad specification.
preprocessing
pydantic-field
¤
preprocessing: list[PreprocessingDescr]
Description of how this input should be preprocessed.
notes: - If preprocessing does not start with an 'ensure_dtype' entry, it is added to ensure an input tensor's data type matches the input tensor's data description. - If preprocessing does not end with an 'ensure_dtype' or 'binarize' entry, an 'ensure_dtype' step is added to ensure preprocessing steps are not unintentionally changing the data type.
sample_tensor
pydantic-field
¤
sample_tensor: FAIR[FileDescr_package | None] = None
A sample tensor to illustrate a possible input/output for the model,
The sample image primarily serves to inform a human user about an example use case
and is typically stored as .hdf5, .png or .tiff.
It has to be readable by the imageio library
(numpy's .npy format is not supported).
The image dimensionality has to match the number of axes specified in this tensor description.
test_tensor
pydantic-field
¤
test_tensor: FAIR[FileDescr_package | None] = None
An example tensor to use for testing. Using the model with the test input tensors is expected to yield the test output tensors. Each test tensor has be a an ndarray in the numpy.lib file format. The file extension must be '.npy'.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get_axis_sizes_for_array
¤
get_axis_sizes_for_array(
array: NDArray[Any],
) -> dict[AxisId, int]
Source code in src/bioimageio/spec/model/v0_5.py
1937 1938 1939 1940 1941 1942 1943 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
IntervalOrRatioDataDescr
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"type": {
"default": "float32",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64"
],
"examples": [
"float32",
"float64",
"uint8",
"uint16"
],
"title": "Type",
"type": "string"
},
"range": {
"default": [
null,
null
],
"description": "Tuple `(minimum, maximum)` specifying the allowed range of the data in this tensor.\n`None` corresponds to min/max of what can be expressed by **type**.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
],
"title": "Range",
"type": "array"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
}
],
"default": "arbitrary unit",
"title": "Unit"
},
"scale": {
"default": 1.0,
"description": "Scale for data on an interval (or ratio) scale.",
"title": "Scale",
"type": "number"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Offset for data on a ratio scale.",
"title": "Offset"
}
},
"title": "model.v0_5.IntervalOrRatioDataDescr",
"type": "object"
}
Fields:
-
type(Annotated[IntervalOrRatioDType, Field(examples=['float32', 'float64', 'uint8', 'uint16'])]) -
range(tuple[float | None, float | None]) -
unit(Literal['arbitrary unit'] | SiUnit) -
scale(float) -
offset(float | None)
Validators:
-
_replace_inf
range
pydantic-field
¤
range: tuple[float | None, float | None] = (None, None)
Tuple (minimum, maximum) specifying the allowed range of the data in this tensor.
None corresponds to min/max of what can be expressed by type.
type
pydantic-field
¤
type: Annotated[
IntervalOrRatioDType,
Field(
examples=["float32", "float64", "uint8", "uint16"]
),
] = "float32"
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
KerasHdf5WeightsDescr
pydantic-model
¤
Bases: WeightsEntryDescrBase
Show JSON schema:
{
"$defs": {
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
}
},
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"tensorflow_version": {
"$ref": "#/$defs/Version",
"description": "TensorFlow version used to create these weights."
}
},
"required": [
"source",
"tensorflow_version"
],
"title": "model.v0_5.KerasHdf5WeightsDescr",
"type": "object"
}
Fields:
-
source(Annotated[FileSource, AfterValidator(wo_special_file_name)]) -
sha256(Sha256 | None) -
authors(list[Author] | None) -
parent(Annotated[WeightsFormat | None, Field(examples=['pytorch_state_dict'])]) -
comment(str) -
tensorflow_version(Version)
Validators:
-
_validate
authors
pydantic-field
¤
authors: list[Author] | None = None
Authors
Either the person(s) that have trained this model resulting in the original weights file.
(If this is the initial weights entry, i.e. it does not have a parent)
Or the person(s) who have converted the weights to this weights format.
(If this is a child weight, i.e. it has a parent field)
comment
pydantic-field
¤
comment: str = ''
A comment about this weights entry, for example how these weights were created.
parent
pydantic-field
¤
parent: Annotated[
WeightsFormat | None,
Field(examples=["pytorch_state_dict"]),
] = None
The source weights these weights were converted from.
For example, if a model's weights were converted from the pytorch_state_dict format to torchscript,
The pytorch_state_dict weights entry has no parent and is the parent of the torchscript weights.
All weight entries except one (the initial set of weights resulting from training the model),
need to have this field.
source
pydantic-field
¤
source: Annotated[
FileSource, AfterValidator(wo_special_file_name)
]
Source of the weights file.
tensorflow_version
pydantic-field
¤
tensorflow_version: Version
TensorFlow version used to create these weights.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
KerasV3WeightsDescr
pydantic-model
¤
Bases: WeightsEntryDescrBase
Show JSON schema:
{
"$defs": {
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
}
},
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the .keras weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"keras_version": {
"$ref": "#/$defs/Version",
"description": "Keras version used to create these weights.",
"ge": 3
},
"backend": {
"description": "Keras backend used to create these weights.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"enum": [
"tensorflow",
"jax",
"torch"
],
"type": "string"
},
{
"$ref": "#/$defs/Version"
}
],
"title": "Backend",
"type": "array"
}
},
"required": [
"source",
"keras_version",
"backend"
],
"title": "model.v0_5.KerasV3WeightsDescr",
"type": "object"
}
Fields:
-
sha256(Sha256 | None) -
authors(list[Author] | None) -
parent(Annotated[WeightsFormat | None, Field(examples=['pytorch_state_dict'])]) -
comment(str) -
keras_version(Annotated[Version, Ge(Version(3))]) -
backend(tuple[Literal['tensorflow', 'jax', 'torch'], Version]) -
source(Annotated[FileSource, AfterValidator(wo_special_file_name), WithSuffix('.keras', case_sensitive=True)])
Validators:
-
_validate
authors
pydantic-field
¤
authors: list[Author] | None = None
Authors
Either the person(s) that have trained this model resulting in the original weights file.
(If this is the initial weights entry, i.e. it does not have a parent)
Or the person(s) who have converted the weights to this weights format.
(If this is a child weight, i.e. it has a parent field)
backend
pydantic-field
¤
backend: tuple[
Literal["tensorflow", "jax", "torch"], Version
]
Keras backend used to create these weights.
comment
pydantic-field
¤
comment: str = ''
A comment about this weights entry, for example how these weights were created.
keras_version
pydantic-field
¤
Keras version used to create these weights.
parent
pydantic-field
¤
parent: Annotated[
WeightsFormat | None,
Field(examples=["pytorch_state_dict"]),
] = None
The source weights these weights were converted from.
For example, if a model's weights were converted from the pytorch_state_dict format to torchscript,
The pytorch_state_dict weights entry has no parent and is the parent of the torchscript weights.
All weight entries except one (the initial set of weights resulting from training the model),
need to have this field.
source
pydantic-field
¤
source: Annotated[
FileSource,
AfterValidator(wo_special_file_name),
WithSuffix(".keras", case_sensitive=True),
]
Source of the .keras weights file.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
LicenseId
¤
Bases: ValidatedString
flowchart TD
bioimageio.spec.model.v0_5.LicenseId[LicenseId]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.model.v0_5.LicenseId
click bioimageio.spec.model.v0_5.LicenseId href "" "bioimageio.spec.model.v0_5.LicenseId"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
LinkedDataset
pydantic-model
¤
Bases: LinkedResourceBase
Reference to a bioimage.io dataset.
Show JSON schema:
{
"$defs": {
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
}
},
"additionalProperties": false,
"description": "Reference to a bioimage.io dataset.",
"properties": {
"version": {
"anyOf": [
{
"$ref": "#/$defs/Version"
},
{
"type": "null"
}
],
"default": null,
"description": "The version of the linked resource following SemVer 2.0."
},
"id": {
"description": "A valid dataset `id` from the bioimage.io collection.",
"minLength": 1,
"title": "DatasetId",
"type": "string"
}
},
"required": [
"id"
],
"title": "dataset.v0_3.LinkedDataset",
"type": "object"
}
Fields:
version
pydantic-field
¤
version: Version | None = None
The version of the linked resource following SemVer 2.0.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
LinkedModel
pydantic-model
¤
Bases: LinkedResourceBase
Reference to a bioimage.io model.
Show JSON schema:
{
"$defs": {
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
}
},
"additionalProperties": false,
"description": "Reference to a bioimage.io model.",
"properties": {
"version": {
"anyOf": [
{
"$ref": "#/$defs/Version"
},
{
"type": "null"
}
],
"default": null,
"description": "The version of the linked resource following SemVer 2.0."
},
"id": {
"description": "A valid model `id` from the bioimage.io collection.",
"minLength": 1,
"title": "ModelId",
"type": "string"
}
},
"required": [
"id"
],
"title": "model.v0_5.LinkedModel",
"type": "object"
}
Fields:
version
pydantic-field
¤
version: Version | None = None
The version of the linked resource following SemVer 2.0.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
LinkedResource
pydantic-model
¤
Bases: LinkedResourceBase
Reference to a bioimage.io resource
Show JSON schema:
{
"$defs": {
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
}
},
"additionalProperties": false,
"description": "Reference to a bioimage.io resource",
"properties": {
"version": {
"anyOf": [
{
"$ref": "#/$defs/Version"
},
{
"type": "null"
}
],
"default": null,
"description": "The version of the linked resource following SemVer 2.0."
},
"id": {
"description": "A valid resource `id` from the official bioimage.io collection.",
"minLength": 1,
"title": "ResourceId",
"type": "string"
}
},
"required": [
"id"
],
"title": "generic.v0_3.LinkedResource",
"type": "object"
}
Fields:
-
version(Version | None) -
id(ResourceId)
version
pydantic-field
¤
version: Version | None = None
The version of the linked resource following SemVer 2.0.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
Maintainer
pydantic-model
¤
Bases: _Maintainer_v0_2
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"github_user": {
"title": "Github User",
"type": "string"
}
},
"required": [
"github_user"
],
"title": "generic.v0_3.Maintainer",
"type": "object"
}
Fields:
-
affiliation(str | None) -
email(EmailStr | None) -
orcid(Annotated[OrcidId | None, Field(examples=['0000-0001-2345-6789'])]) -
name(Annotated[str, Predicate(_has_no_slash)] | None) -
github_user(str)
Validators:
orcid
pydantic-field
¤
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_github_user
pydantic-validator
¤
validate_github_user(value: str)
Source code in src/bioimageio/spec/generic/v0_3.py
147 148 149 | |
ModelDescr
pydantic-model
¤
Bases: GenericModelDescrBase
Specification of the fields used in a bioimage.io-compliant RDF to describe AI models with pretrained weights. These fields are typically stored in a YAML file which we call a model resource description file (model RDF).
Show JSON schema:
{
"$defs": {
"ArchitectureFromFileDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Architecture source file",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"callable": {
"description": "Identifier of the callable that returns a torch.nn.Module instance.",
"examples": [
"MyNetworkClass",
"get_my_model"
],
"minLength": 1,
"title": "Identifier",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `callable`",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"source",
"callable"
],
"title": "model.v0_5.ArchitectureFromFileDescr",
"type": "object"
},
"ArchitectureFromLibraryDescr": {
"additionalProperties": false,
"properties": {
"callable": {
"description": "Identifier of the callable that returns a torch.nn.Module instance.",
"examples": [
"MyNetworkClass",
"get_my_model"
],
"minLength": 1,
"title": "Identifier",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `callable`",
"title": "Kwargs",
"type": "object"
},
"import_from": {
"description": "Where to import the callable from, i.e. `from <import_from> import <callable>`",
"title": "Import From",
"type": "string"
}
},
"required": [
"callable",
"import_from"
],
"title": "model.v0_5.ArchitectureFromLibraryDescr",
"type": "object"
},
"AttachmentsDescr": {
"additionalProperties": true,
"properties": {
"files": {
"description": "File attachments",
"items": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"title": "FileSource"
},
"title": "Files",
"type": "array"
}
},
"title": "generic.v0_2.AttachmentsDescr",
"type": "object"
},
"BadgeDescr": {
"additionalProperties": false,
"description": "A custom badge",
"properties": {
"label": {
"description": "badge label to display on hover",
"examples": [
"Open in Colab"
],
"title": "Label",
"type": "string"
},
"icon": {
"anyOf": [
{
"format": "file-path",
"title": "FilePath",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "badge icon (included in bioimage.io package if not a URL)",
"examples": [
"https://colab.research.google.com/assets/colab-badge.svg"
],
"title": "Icon"
},
"url": {
"description": "target URL",
"examples": [
"https://colab.research.google.com/github/HenriquesLab/ZeroCostDL4Mic/blob/master/Colab_notebooks/U-net_2D_ZeroCostDL4Mic.ipynb"
],
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
}
},
"required": [
"label",
"url"
],
"title": "generic.v0_2.BadgeDescr",
"type": "object"
},
"BatchAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "batch",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "batch",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"const": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The batch size may be fixed to 1,\notherwise (the default) it may be chosen arbitrarily depending on available memory",
"title": "Size"
}
},
"required": [
"type"
],
"title": "model.v0_5.BatchAxis",
"type": "object"
},
"BiasRisksLimitations": {
"additionalProperties": true,
"description": "Known biases, risks, technical limitations, and recommendations for model use.",
"properties": {
"known_biases": {
"default": "In general bioimage models may suffer from biases caused by:\n\n- Imaging protocol dependencies\n- Use of a specific cell type\n- Species-specific training data limitations\n\n",
"description": "Biases in training data or model behavior.",
"title": "Known Biases",
"type": "string"
},
"risks": {
"default": "Common risks in bioimage analysis include:\n\n- Erroneously assuming generalization to unseen experimental conditions\n- Trusting (overconfident) model outputs without validation\n- Misinterpretation of results\n\n",
"description": "Potential risks in the context of bioimage analysis.",
"title": "Risks",
"type": "string"
},
"limitations": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Technical limitations and failure modes.",
"title": "Limitations"
},
"recommendations": {
"default": "Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model.",
"description": "Mitigation strategies regarding `known_biases`, `risks`, and `limitations`, as well as applicable best practices.\n\nConsider:\n- How to use a validation dataset?\n- How to manually validate?\n- Feasibility of domain adaptation for different experimental setups?",
"title": "Recommendations",
"type": "string"
}
},
"title": "model.v0_5.BiasRisksLimitations",
"type": "object"
},
"BinarizeAlongAxisKwargs": {
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold values along `axis`",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Threshold",
"type": "array"
},
"axis": {
"description": "The `threshold` axis",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"threshold",
"axis"
],
"title": "model.v0_5.BinarizeAlongAxisKwargs",
"type": "object"
},
"BinarizeDescr": {
"additionalProperties": false,
"description": "Binarize the tensor with a fixed threshold.\n\nValues above [BinarizeKwargs.threshold][]/[BinarizeAlongAxisKwargs.threshold][]\nwill be set to one, values below the threshold to zero.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: binarize\n kwargs:\n axis: 'channel'\n threshold: [0.25, 0.5, 0.75]\n ```\n- in Python:\n\n >>> postprocessing = [BinarizeDescr(\n ... kwargs=BinarizeAlongAxisKwargs(\n ... axis=AxisId('channel'),\n ... threshold=[0.25, 0.5, 0.75],\n ... )\n ... )]",
"properties": {
"id": {
"const": "binarize",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/BinarizeKwargs"
},
{
"$ref": "#/$defs/BinarizeAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.BinarizeDescr",
"type": "object"
},
"BinarizeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold",
"title": "Threshold",
"type": "number"
}
},
"required": [
"threshold"
],
"title": "model.v0_5.BinarizeKwargs",
"type": "object"
},
"CellposeFlowDynamicsDescr": {
"additionalProperties": false,
"description": "Cellpose flow dynamics postprocessing as described in:\n- Carsen Stringer and Marius Pachitariu. [*Cellpose: a generalist algorithm for cellular segmentation*](https://www.nature.com/articles/s41592-020-01018-x). Nature Methods, 2021.\n\nNote: Only available if the `cellpose` package is installed.",
"properties": {
"id": {
"const": "cellpose_flow_dynamics",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/CellposeFlowDynamicsKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.CellposeFlowDynamicsDescr",
"type": "object"
},
"CellposeFlowDynamicsKwargs": {
"additionalProperties": false,
"description": "key word arguments for [CellposeFlowDynamicsDescr][]",
"properties": {
"cellprob_threshold": {
"title": "Cellprob Threshold",
"type": "number"
},
"flow_threshold": {
"title": "Flow Threshold",
"type": "number"
},
"do_3D": {
"title": "Do 3D",
"type": "boolean"
},
"min_size": {
"default": 15,
"description": "Minimum size of objects to keep, in pixels. Default is 15, which is the default in Cellpose. Set to 0 to disable filtering by size.",
"title": "Min Size",
"type": "integer"
},
"output_dtype": {
"default": "uint16",
"enum": [
"uint16",
"uint32"
],
"title": "Output Dtype",
"type": "string"
}
},
"required": [
"cellprob_threshold",
"flow_threshold",
"do_3D"
],
"title": "model.v0_5.CellposeFlowDynamicsKwargs",
"type": "object"
},
"ChannelAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "channel",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "channel",
"title": "Type",
"type": "string"
},
"channel_names": {
"description": "Name/label for each channel. The number of channels is given by `len(channel_names)`.",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Channel Names",
"type": "array"
}
},
"required": [
"type",
"channel_names"
],
"title": "model.v0_5.ChannelAxis",
"type": "object"
},
"ClipDescr": {
"additionalProperties": false,
"description": "Set tensor values below min to min and above max to max.\n\nSee `ScaleRangeDescr` for examples.",
"properties": {
"id": {
"const": "clip",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ClipKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ClipDescr",
"type": "object"
},
"ClipKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ClipDescr][]",
"properties": {
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum value for clipping.\n\nExclusive with [min_percentile][]",
"title": "Min"
},
"min_percentile": {
"anyOf": [
{
"exclusiveMaximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum percentile for clipping.\n\nExclusive with [min][].\n\nIn range [0, 100).",
"title": "Min Percentile"
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum value for clipping.\n\nExclusive with `max_percentile`.",
"title": "Max"
},
"max_percentile": {
"anyOf": [
{
"exclusiveMinimum": 1,
"maximum": 100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum percentile for clipping.\n\nExclusive with `max`.\n\nIn range (1, 100].",
"title": "Max Percentile"
},
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to determine percentiles jointly,\n\ni.e. axes to reduce to compute min/max from `min_percentile`/`max_percentile`.\nFor example to clip 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape with clipped values per channel, specify `axes=('batch', 'x', 'y')`.\nTo clip samples independently, leave out the 'batch' axis.\n\nOnly valid if `min_percentile` and/or `max_percentile` are set.\n\nDefault: Compute percentiles over all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
}
},
"title": "model.v0_5.ClipKwargs",
"type": "object"
},
"ConstantPadding": {
"additionalProperties": false,
"properties": {
"mode": {
"const": "constant",
"default": "constant",
"title": "Mode",
"type": "string"
},
"value": {
"anyOf": [
{
"type": "integer"
},
{
"type": "number"
}
],
"default": 0,
"title": "Value"
}
},
"title": "model.v0_5.ConstantPadding",
"type": "object"
},
"ContinuousReproducibilityTolerance": {
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 100,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"default": 0.001,
"description": "Maximum relative tolerance of reproduced test tensor.\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"maximum": 0.01,
"minimum": 0,
"title": "Relative Tolerance",
"type": "number"
},
"absolute_tolerance": {
"default": 0.001,
"description": "Maximum absolute tolerance of reproduced test tensor.\n\nThe `absolute_tolerance` may not be greater than 1% of the maximum absolute value of the test tensor\n(this serves to prevent false positives in the presence of very small numbers).\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"minimum": 0,
"title": "Absolute Tolerance",
"type": "number"
},
"output_ids": {
"const": "any_continuous_output",
"default": "any_continuous_output",
"description": "Limits the output tensor IDs to all outputs of float data type.",
"title": "Output Ids",
"type": "string"
}
},
"title": "model.v0_5.ContinuousReproducibilityTolerance",
"type": "object"
},
"CustomProcessingDescr": {
"additionalProperties": false,
"description": "Custom (post)processing op \u2014 source file shipped inline with the model.\n\nSupports (post)processing that cannot be expressed by the built-in named\noperations (watershed, connected components, etc.)\nusing a simple Python callable interface.\n\nThe op is implemented in a ``.py`` file packaged alongside the model weights.\nTwo styles are supported:\n\n*Callable class* \u2014 kwargs go to ``__init__``, tensors arrive in ``__call__``:\n\n.. code-block:: python\n\n # my_postprocess.py\n import numpy as np\n\n class my_postprocess:\n def __init__(self, threshold: float = 0.5) -> None:\n self.threshold = threshold\n def __call__(self, *arrays: np.ndarray) -> np.ndarray:\n # arrays = model output tensors in rdf.yaml declaration order\n return (arrays[0] > self.threshold).astype(np.uint8)\n\n*Factory function* \u2014 alternative closure style, identical runtime behaviour:\n\n.. code-block:: python\n\n # my_postprocess.py\n import numpy as np\n\n def my_postprocess(threshold: float = 0.5):\n def run(*arrays: np.ndarray) -> np.ndarray:\n return (arrays[0] > threshold).astype(np.uint8)\n return run\n\nReference it in ``rdf.yaml`` with the source file included in the package:\n\n.. code-block:: yaml\n\n postprocessing:\n - id: custom\n callable: my_postprocess # class or function name in source\n source: my_postprocess.py # packaged alongside weights\n sha256: <hash> # sha256 of the source file\n kwargs: # forwarded to __init__ / factory\n threshold: 0.5\n\n**Security:** source files are SHA-256 verified before execution.\nExecution requires explicit opt-in in bioimageio.core and curator\nreview before Zoo publication.",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Python source file (included when packaging the model).",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"id": {
"const": "custom",
"title": "Id",
"type": "string"
},
"callable": {
"description": "Name of the callable class or factory function defined in ``source``.\n\nAt runtime: ``op = callable(**kwargs)``, then ``result = op(*output_tensors)``\nper image. Both a class with ``__call__`` and a factory function returning\na callable satisfy this protocol.",
"examples": [
"my_postprocess_factory",
"MyPostprocessClass"
],
"title": "Callable",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "Keyword arguments forwarded to the callable (``__init__`` or factory).",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"source",
"id",
"callable"
],
"title": "model.v0_5.CustomProcessingDescr",
"type": "object"
},
"DataDependentSize": {
"additionalProperties": false,
"properties": {
"min": {
"default": 1,
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"max": {
"anyOf": [
{
"exclusiveMinimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max"
}
},
"title": "model.v0_5.DataDependentSize",
"type": "object"
},
"Datetime": {
"description": "Timestamp in [ISO 8601](#https://en.wikipedia.org/wiki/ISO_8601) format\nwith a few restrictions listed [here](https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat).",
"format": "date-time",
"title": "Datetime",
"type": "string"
},
"DiscreteReproducibilityTolerance": {
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 1000,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.\n\nNote: Increased default mismatched elements per million compared to\n[`ReproducibilityTolerance`][ReproducibilityTolerance]/[`ContinuousReproducibilityTolerance`][ContinuousReproducibilityTolerance],\nsince a single pixel mismatch can be more significant than for continuous outputs with numeric tolerance.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"const": 0,
"default": 0,
"description": "Relative tolerance does not apply to discrete outputs",
"title": "Relative Tolerance",
"type": "integer"
},
"absolute_tolerance": {
"const": 0,
"default": 0,
"description": "Absolute tolerance does not apply to discrete outputs",
"title": "Absolute Tolerance",
"type": "integer"
},
"output_ids": {
"const": "any_discrete_output",
"default": "any_discrete_output",
"description": "Limits the output tensor IDs to all outputs of integer or boolean data type.",
"title": "Output Ids",
"type": "string"
}
},
"title": "model.v0_5.DiscreteReproducibilityTolerance",
"type": "object"
},
"EdgePadding": {
"additionalProperties": false,
"properties": {
"mode": {
"const": "edge",
"default": "edge",
"title": "Mode",
"type": "string"
}
},
"title": "model.v0_5.EdgePadding",
"type": "object"
},
"EnsureDtypeDescr": {
"additionalProperties": false,
"description": "Cast the tensor data type to `EnsureDtypeKwargs.dtype` (if not matching).\n\nThis can for example be used to ensure the inner neural network model gets a\ndifferent input tensor data type than the fully described bioimage.io model does.\n\nExamples:\n The described bioimage.io model (incl. preprocessing) accepts any\n float32-compatible tensor, normalizes it with percentiles and clipping and then\n casts it to uint8, which is what the neural network in this example expects.\n - in YAML\n ```yaml\n inputs:\n - data:\n type: float32 # described bioimage.io model is compatible with any float32 input tensor\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n - id: clip\n kwargs:\n min: 0.0\n max: 1.0\n - id: ensure_dtype # the neural network of the model requires uint8\n kwargs:\n dtype: uint8\n ```\n - in Python:\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... ),\n ... ClipDescr(kwargs=ClipKwargs(min=0.0, max=1.0)),\n ... EnsureDtypeDescr(kwargs=EnsureDtypeKwargs(dtype=\"uint8\")),\n ... ]",
"properties": {
"id": {
"const": "ensure_dtype",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/EnsureDtypeKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.EnsureDtypeDescr",
"type": "object"
},
"EnsureDtypeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [EnsureDtypeDescr][]",
"properties": {
"dtype": {
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"title": "Dtype",
"type": "string"
}
},
"required": [
"dtype"
],
"title": "model.v0_5.EnsureDtypeKwargs",
"type": "object"
},
"EnvironmentalImpact": {
"additionalProperties": true,
"description": "Environmental considerations for model training and deployment.\n\nCarbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).",
"properties": {
"hardware_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU/CPU specifications",
"title": "Hardware Type"
},
"hours_used": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total compute hours",
"title": "Hours Used"
},
"cloud_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If applicable",
"title": "Cloud Provider"
},
"compute_region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Geographic location",
"title": "Compute Region"
},
"co2_emitted": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "kg CO2 equivalent\n\nCarbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).",
"title": "Co2 Emitted"
}
},
"title": "model.v0_5.EnvironmentalImpact",
"type": "object"
},
"Evaluation": {
"additionalProperties": true,
"properties": {
"model_id": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Model being evaluated.",
"title": "Model Id"
},
"dataset_id": {
"description": "Dataset used for evaluation.",
"minLength": 1,
"title": "DatasetId",
"type": "string"
},
"dataset_source": {
"description": "Source of the dataset.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
"dataset_role": {
"description": "Role of the dataset used for evaluation.\n\n- `train`: dataset was (part of) the training data\n- `validation`: dataset was (part of) the validation data used during training, e.g. used for model selection or hyperparameter tuning\n- `test`: dataset was (part of) the designated test data; not used during training or validation, but acquired from the same source/distribution as training data\n- `independent`: dataset is entirely independent test data; not used during training or validation, and acquired from a different source/distribution than training data\n- `unknown`: role of the dataset is unknown; choose this if you are not certain if (a subset) of the data was seen by the model during training.",
"enum": [
"train",
"validation",
"test",
"independent",
"unknown"
],
"title": "Dataset Role",
"type": "string"
},
"sample_count": {
"description": "Number of evaluated samples.",
"title": "Sample Count",
"type": "integer"
},
"evaluation_factors": {
"description": "(Abbreviations of) each evaluation factor.\n\nEvaluation factors are criteria along which model performance is evaluated, e.g. different image conditions\nlike 'low SNR', 'high cell density', or different biological conditions like 'cell type A', 'cell type B'.\nAn 'overall' factor may be included to summarize performance across all conditions.",
"items": {
"maxLength": 16,
"type": "string"
},
"title": "Evaluation Factors",
"type": "array"
},
"evaluation_factors_long": {
"description": "Descriptions (long form) of each evaluation factor.",
"items": {
"type": "string"
},
"title": "Evaluation Factors Long",
"type": "array"
},
"metrics": {
"description": "(Abbreviations of) metrics used for evaluation.",
"items": {
"maxLength": 16,
"type": "string"
},
"title": "Metrics",
"type": "array"
},
"metrics_long": {
"description": "Description of each metric used.",
"items": {
"type": "string"
},
"title": "Metrics Long",
"type": "array"
},
"results": {
"description": "Results for each metric (rows; outer list) and each evaluation factor (columns; inner list).",
"items": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
},
"type": "array"
},
"title": "Results",
"type": "array"
},
"results_summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Interpretation of results for general audience.\n\nConsider:\n - Overall model performance\n - Comparison to existing methods\n - Limitations and areas for improvement",
"title": "Results Summary"
}
},
"required": [
"dataset_id",
"dataset_source",
"dataset_role",
"sample_count",
"evaluation_factors",
"evaluation_factors_long",
"metrics",
"metrics_long",
"results"
],
"title": "model.v0_5.Evaluation",
"type": "object"
},
"FileDescr": {
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
},
"FixedZeroMeanUnitVarianceAlongAxisKwargs": {
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value(s) to normalize with.",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Mean",
"type": "array"
},
"std": {
"description": "The standard deviation value(s) to normalize with.\nSize must match `mean` values.",
"items": {
"minimum": 1e-06,
"type": "number"
},
"minItems": 1,
"title": "Std",
"type": "array"
},
"axis": {
"description": "The axis of the mean/std values to normalize each entry along that dimension\nseparately.",
"examples": [
"channel",
"index"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"mean",
"std",
"axis"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceAlongAxisKwargs",
"type": "object"
},
"FixedZeroMeanUnitVarianceDescr": {
"additionalProperties": false,
"description": "Subtract a given mean and divide by the standard deviation.\n\nNormalize with fixed, precomputed values for\n`FixedZeroMeanUnitVarianceKwargs.mean` and `FixedZeroMeanUnitVarianceKwargs.std`\nUse `FixedZeroMeanUnitVarianceAlongAxisKwargs` for independent scaling along given\naxes.\n\nExamples:\n1. scalar value for whole tensor\n - in YAML\n ```yaml\n preprocessing:\n - id: fixed_zero_mean_unit_variance\n kwargs:\n mean: 103.5\n std: 13.7\n ```\n - in Python\n >>> preprocessing = [FixedZeroMeanUnitVarianceDescr(\n ... kwargs=FixedZeroMeanUnitVarianceKwargs(mean=103.5, std=13.7)\n ... )]\n\n2. independently along an axis\n - in YAML\n ```yaml\n preprocessing:\n - id: fixed_zero_mean_unit_variance\n kwargs:\n axis: channel\n mean: [101.5, 102.5, 103.5]\n std: [11.7, 12.7, 13.7]\n ```\n - in Python\n >>> preprocessing = [FixedZeroMeanUnitVarianceDescr(\n ... kwargs=FixedZeroMeanUnitVarianceAlongAxisKwargs(\n ... axis=AxisId(\"channel\"),\n ... mean=[101.5, 102.5, 103.5],\n ... std=[11.7, 12.7, 13.7],\n ... )\n ... )]",
"properties": {
"id": {
"const": "fixed_zero_mean_unit_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceKwargs"
},
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceDescr",
"type": "object"
},
"FixedZeroMeanUnitVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value to normalize with.",
"title": "Mean",
"type": "number"
},
"std": {
"description": "The standard deviation value to normalize with.",
"minimum": 1e-06,
"title": "Std",
"type": "number"
}
},
"required": [
"mean",
"std"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceKwargs",
"type": "object"
},
"IndexInputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "index",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "index",
"title": "Type",
"type": "string"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.IndexInputAxis",
"type": "object"
},
"IndexOutputAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "index",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "index",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
},
{
"$ref": "#/$defs/DataDependentSize"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset ([SizeReference][])\n- data dependent size using [DataDependentSize][] (size is only known after model inference)",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
}
},
"required": [
"type",
"size"
],
"title": "model.v0_5.IndexOutputAxis",
"type": "object"
},
"InputTensorDescr": {
"additionalProperties": false,
"properties": {
"id": {
"default": "input",
"description": "Input tensor id.\nNo duplicates are allowed across all inputs and outputs.",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"description": {
"default": "",
"description": "free text description",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"axes": {
"description": "tensor axes",
"items": {
"discriminator": {
"mapping": {
"batch": "#/$defs/BatchAxis",
"channel": "#/$defs/ChannelAxis",
"index": "#/$defs/IndexInputAxis",
"space": "#/$defs/SpaceInputAxis",
"time": "#/$defs/TimeInputAxis"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/BatchAxis"
},
{
"$ref": "#/$defs/ChannelAxis"
},
{
"$ref": "#/$defs/IndexInputAxis"
},
{
"$ref": "#/$defs/TimeInputAxis"
},
{
"$ref": "#/$defs/SpaceInputAxis"
}
]
},
"minItems": 1,
"title": "Axes",
"type": "array"
},
"test_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "An example tensor to use for testing.\nUsing the model with the test input tensors is expected to yield the test output tensors.\nEach test tensor has be a an ndarray in the\n[numpy.lib file format](https://numpy.org/doc/stable/reference/generated/numpy.lib.format.html#module-numpy.lib.format).\nThe file extension must be '.npy'."
},
"sample_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "A sample tensor to illustrate a possible input/output for the model,\nThe sample image primarily serves to inform a human user about an example use case\nand is typically stored as .hdf5, .png or .tiff.\nIt has to be readable by the [imageio library](https://imageio.readthedocs.io/en/stable/formats/index.html#supported-formats)\n(numpy's `.npy` format is not supported).\nThe image dimensionality has to match the number of axes specified in this tensor description."
},
"data": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
},
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
}
]
},
"minItems": 1,
"type": "array"
}
],
"default": {
"type": "float32",
"range": [
null,
null
],
"unit": "arbitrary unit",
"scale": 1.0,
"offset": null
},
"description": "Description of the tensor's data values, optionally per channel.\nIf specified per channel, the data `type` needs to match across channels.",
"title": "Data"
},
"output_of": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "If this input tensor is the output of another model, specify the model id here.\nThis model's input id must match the output id of the referenced model.",
"title": "Output Of"
},
"optional": {
"default": false,
"description": "indicates that this tensor may be `None`",
"title": "Optional",
"type": "boolean"
},
"pad": {
"anyOf": [
{
"$ref": "#/$defs/ConstantPadding"
},
{
"$ref": "#/$defs/EdgePadding"
},
{
"$ref": "#/$defs/ReflectPadding"
},
{
"$ref": "#/$defs/SymmetricPadding"
},
{
"type": "null"
}
],
"default": null,
"description": "Explicitly specify how to pad this input tensor.\n\nUse `axes[i].pad` to specify padding width.\n\nNote:\n Non-blockwise sample prediction only applies padding for axes with a `pad` specification.",
"title": "Pad"
},
"preprocessing": {
"description": "Description of how this input should be preprocessed.\n\nnotes:\n- If preprocessing does not start with an 'ensure_dtype' entry, it is added\n to ensure an input tensor's data type matches the input tensor's data description.\n- If preprocessing does not end with an 'ensure_dtype' or 'binarize' entry, an\n 'ensure_dtype' step is added to ensure preprocessing steps are not unintentionally\n changing the data type.",
"items": {
"discriminator": {
"mapping": {
"binarize": "#/$defs/BinarizeDescr",
"clip": "#/$defs/ClipDescr",
"ensure_dtype": "#/$defs/EnsureDtypeDescr",
"fixed_zero_mean_unit_variance": "#/$defs/FixedZeroMeanUnitVarianceDescr",
"scale_linear": "#/$defs/ScaleLinearDescr",
"scale_range": "#/$defs/ScaleRangeDescr",
"sigmoid": "#/$defs/SigmoidDescr",
"softmax": "#/$defs/SoftmaxDescr",
"zero_mean_unit_variance": "#/$defs/ZeroMeanUnitVarianceDescr"
},
"propertyName": "id"
},
"oneOf": [
{
"$ref": "#/$defs/BinarizeDescr"
},
{
"$ref": "#/$defs/ClipDescr"
},
{
"$ref": "#/$defs/EnsureDtypeDescr"
},
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceDescr"
},
{
"$ref": "#/$defs/ScaleLinearDescr"
},
{
"$ref": "#/$defs/ScaleRangeDescr"
},
{
"$ref": "#/$defs/SigmoidDescr"
},
{
"$ref": "#/$defs/SoftmaxDescr"
},
{
"$ref": "#/$defs/ZeroMeanUnitVarianceDescr"
}
]
},
"title": "Preprocessing",
"type": "array"
}
},
"required": [
"axes"
],
"title": "model.v0_5.InputTensorDescr",
"type": "object"
},
"IntervalOrRatioDataDescr": {
"additionalProperties": false,
"properties": {
"type": {
"default": "float32",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64"
],
"examples": [
"float32",
"float64",
"uint8",
"uint16"
],
"title": "Type",
"type": "string"
},
"range": {
"default": [
null,
null
],
"description": "Tuple `(minimum, maximum)` specifying the allowed range of the data in this tensor.\n`None` corresponds to min/max of what can be expressed by **type**.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
],
"title": "Range",
"type": "array"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
}
],
"default": "arbitrary unit",
"title": "Unit"
},
"scale": {
"default": 1.0,
"description": "Scale for data on an interval (or ratio) scale.",
"title": "Scale",
"type": "number"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Offset for data on a ratio scale.",
"title": "Offset"
}
},
"title": "model.v0_5.IntervalOrRatioDataDescr",
"type": "object"
},
"KerasHdf5WeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"tensorflow_version": {
"$ref": "#/$defs/Version",
"description": "TensorFlow version used to create these weights."
}
},
"required": [
"source",
"tensorflow_version"
],
"title": "model.v0_5.KerasHdf5WeightsDescr",
"type": "object"
},
"KerasV3WeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the .keras weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"keras_version": {
"$ref": "#/$defs/Version",
"description": "Keras version used to create these weights.",
"ge": 3
},
"backend": {
"description": "Keras backend used to create these weights.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"enum": [
"tensorflow",
"jax",
"torch"
],
"type": "string"
},
{
"$ref": "#/$defs/Version"
}
],
"title": "Backend",
"type": "array"
}
},
"required": [
"source",
"keras_version",
"backend"
],
"title": "model.v0_5.KerasV3WeightsDescr",
"type": "object"
},
"LinkedDataset": {
"additionalProperties": false,
"description": "Reference to a bioimage.io dataset.",
"properties": {
"version": {
"anyOf": [
{
"$ref": "#/$defs/Version"
},
{
"type": "null"
}
],
"default": null,
"description": "The version of the linked resource following SemVer 2.0."
},
"id": {
"description": "A valid dataset `id` from the bioimage.io collection.",
"minLength": 1,
"title": "DatasetId",
"type": "string"
}
},
"required": [
"id"
],
"title": "dataset.v0_3.LinkedDataset",
"type": "object"
},
"LinkedModel": {
"additionalProperties": false,
"description": "Reference to a bioimage.io model.",
"properties": {
"version": {
"anyOf": [
{
"$ref": "#/$defs/Version"
},
{
"type": "null"
}
],
"default": null,
"description": "The version of the linked resource following SemVer 2.0."
},
"id": {
"description": "A valid model `id` from the bioimage.io collection.",
"minLength": 1,
"title": "ModelId",
"type": "string"
}
},
"required": [
"id"
],
"title": "model.v0_5.LinkedModel",
"type": "object"
},
"NominalOrOrdinalDataDescr": {
"additionalProperties": false,
"properties": {
"values": {
"anyOf": [
{
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "boolean"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
}
],
"description": "A fixed set of nominal or an ascending sequence of ordinal values.\nIn this case `data.type` is required to be an unsigend integer type, e.g. 'uint8'.\nString `values` are interpreted as labels for tensor values 0, ..., N.\nNote: as YAML 1.2 does not natively support a \"set\" datatype,\nnominal values should be given as a sequence (aka list/array) as well.",
"title": "Values"
},
"type": {
"default": "uint8",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"examples": [
"float32",
"uint8",
"uint16",
"int64",
"bool"
],
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
}
},
"required": [
"values"
],
"title": "model.v0_5.NominalOrOrdinalDataDescr",
"type": "object"
},
"OnnxWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"opset_version": {
"description": "ONNX opset version",
"minimum": 7,
"title": "Opset Version",
"type": "integer"
},
"external_data": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "weights.onnx.data"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Source of the external ONNX data file holding the weights.\n(If present **source** holds the ONNX architecture without weights)."
}
},
"required": [
"source",
"opset_version"
],
"title": "model.v0_5.OnnxWeightsDescr",
"type": "object"
},
"OutputTensorDescr": {
"additionalProperties": false,
"properties": {
"id": {
"default": "output",
"description": "Output tensor id.\nNo duplicates are allowed across all inputs and outputs.",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"description": {
"default": "",
"description": "free text description",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"axes": {
"description": "tensor axes",
"items": {
"discriminator": {
"mapping": {
"batch": "#/$defs/BatchAxis",
"channel": "#/$defs/ChannelAxis",
"index": "#/$defs/IndexOutputAxis",
"space": {
"oneOf": [
{
"$ref": "#/$defs/SpaceOutputAxis"
},
{
"$ref": "#/$defs/SpaceOutputAxisWithHalo"
}
]
},
"time": {
"oneOf": [
{
"$ref": "#/$defs/TimeOutputAxis"
},
{
"$ref": "#/$defs/TimeOutputAxisWithHalo"
}
]
}
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/BatchAxis"
},
{
"$ref": "#/$defs/ChannelAxis"
},
{
"$ref": "#/$defs/IndexOutputAxis"
},
{
"oneOf": [
{
"$ref": "#/$defs/TimeOutputAxis"
},
{
"$ref": "#/$defs/TimeOutputAxisWithHalo"
}
]
},
{
"oneOf": [
{
"$ref": "#/$defs/SpaceOutputAxis"
},
{
"$ref": "#/$defs/SpaceOutputAxisWithHalo"
}
]
}
]
},
"minItems": 1,
"title": "Axes",
"type": "array"
},
"test_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "An example tensor to use for testing.\nUsing the model with the test input tensors is expected to yield the test output tensors.\nEach test tensor has be a an ndarray in the\n[numpy.lib file format](https://numpy.org/doc/stable/reference/generated/numpy.lib.format.html#module-numpy.lib.format).\nThe file extension must be '.npy'."
},
"sample_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "A sample tensor to illustrate a possible input/output for the model,\nThe sample image primarily serves to inform a human user about an example use case\nand is typically stored as .hdf5, .png or .tiff.\nIt has to be readable by the [imageio library](https://imageio.readthedocs.io/en/stable/formats/index.html#supported-formats)\n(numpy's `.npy` format is not supported).\nThe image dimensionality has to match the number of axes specified in this tensor description."
},
"data": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
},
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
}
]
},
"minItems": 1,
"type": "array"
}
],
"default": {
"type": "float32",
"range": [
null,
null
],
"unit": "arbitrary unit",
"scale": 1.0,
"offset": null
},
"description": "Description of the tensor's data values, optionally per channel.\nIf specified per channel, the data `type` needs to match across channels.",
"title": "Data"
},
"postprocessing": {
"description": "Description of how this output should be postprocessed.\n\nnote: `postprocessing` always ends with an 'ensure_dtype' operation.\n If not given this is added to cast to this tensor's `data.type`.",
"items": {
"discriminator": {
"mapping": {
"binarize": "#/$defs/BinarizeDescr",
"cellpose_flow_dynamics": "#/$defs/CellposeFlowDynamicsDescr",
"clip": "#/$defs/ClipDescr",
"custom": "#/$defs/CustomProcessingDescr",
"ensure_dtype": "#/$defs/EnsureDtypeDescr",
"fixed_zero_mean_unit_variance": "#/$defs/FixedZeroMeanUnitVarianceDescr",
"scale_linear": "#/$defs/ScaleLinearDescr",
"scale_mean_variance": "#/$defs/ScaleMeanVarianceDescr",
"scale_range": "#/$defs/ScaleRangeDescr",
"sigmoid": "#/$defs/SigmoidDescr",
"softmax": "#/$defs/SoftmaxDescr",
"stardist_postprocessing": "#/$defs/StardistPostprocessingDescr",
"zero_mean_unit_variance": "#/$defs/ZeroMeanUnitVarianceDescr"
},
"propertyName": "id"
},
"oneOf": [
{
"$ref": "#/$defs/BinarizeDescr"
},
{
"$ref": "#/$defs/CellposeFlowDynamicsDescr"
},
{
"$ref": "#/$defs/ClipDescr"
},
{
"$ref": "#/$defs/CustomProcessingDescr"
},
{
"$ref": "#/$defs/EnsureDtypeDescr"
},
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceDescr"
},
{
"$ref": "#/$defs/ScaleLinearDescr"
},
{
"$ref": "#/$defs/ScaleMeanVarianceDescr"
},
{
"$ref": "#/$defs/ScaleRangeDescr"
},
{
"$ref": "#/$defs/SigmoidDescr"
},
{
"$ref": "#/$defs/SoftmaxDescr"
},
{
"$ref": "#/$defs/StardistPostprocessingDescr"
},
{
"$ref": "#/$defs/ZeroMeanUnitVarianceDescr"
}
]
},
"title": "Postprocessing",
"type": "array"
}
},
"required": [
"axes"
],
"title": "model.v0_5.OutputTensorDescr",
"type": "object"
},
"ParameterizedSize": {
"additionalProperties": false,
"description": "Describes a range of valid tensor axis sizes as `size = min + n*step`.\n\n- **min** and **step** are given by the model description.\n- All blocksize paramters n = 0,1,2,... yield a valid `size`.\n- A greater blocksize paramter n = 0,1,2,... results in a greater **size**.\n This allows to adjust the axis size more generically.",
"properties": {
"min": {
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"step": {
"exclusiveMinimum": 0,
"title": "Step",
"type": "integer"
}
},
"required": [
"min",
"step"
],
"title": "model.v0_5.ParameterizedSize",
"type": "object"
},
"PytorchStateDictWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"architecture": {
"anyOf": [
{
"$ref": "#/$defs/ArchitectureFromFileDescr"
},
{
"$ref": "#/$defs/ArchitectureFromLibraryDescr"
}
],
"title": "Architecture"
},
"pytorch_version": {
"$ref": "#/$defs/Version",
"description": "Version of the PyTorch library used.\nIf `architecture.depencencies` is specified it has to include pytorch and any version pinning has to be compatible."
},
"dependencies": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "environment.yaml"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Custom depencies beyond pytorch described in a Conda environment file.\nAllows to specify custom dependencies, see conda docs:\n- [Exporting an environment file across platforms](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-an-environment-file-across-platforms)\n- [Creating an environment file manually](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-file-manually)\n\nThe conda environment file should include pytorch and any version pinning has to be compatible with\n**pytorch_version**."
},
"strict": {
"default": true,
"description": "Whether to allow missing or unexpected keys or to be strict about the architecture matching the state dict weights.",
"title": "Strict",
"type": "boolean"
}
},
"required": [
"source",
"architecture",
"pytorch_version"
],
"title": "model.v0_5.PytorchStateDictWeightsDescr",
"type": "object"
},
"ReflectPadding": {
"additionalProperties": false,
"properties": {
"mode": {
"const": "reflect",
"default": "reflect",
"title": "Mode",
"type": "string"
}
},
"title": "model.v0_5.ReflectPadding",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"ReproducibilityTolerance": {
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 100,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"default": 0.001,
"description": "Maximum relative tolerance of reproduced test tensor.\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"maximum": 0.01,
"minimum": 0,
"title": "Relative Tolerance",
"type": "number"
},
"absolute_tolerance": {
"default": 0.001,
"description": "Maximum absolute tolerance of reproduced test tensor.\n\nThe `absolute_tolerance` may not be greater than 1% of the maximum absolute value of the test tensor\n(this serves to prevent false positives in the presence of very small numbers).\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"minimum": 0,
"title": "Absolute Tolerance",
"type": "number"
},
"output_ids": {
"default": [],
"description": "Limits the output tensor IDs these reproducibility details apply to.\n\nIf empty, the reproducibility details apply to all outputs.",
"items": {
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"title": "Output Ids",
"type": "array"
}
},
"title": "model.v0_5.ReproducibilityTolerance",
"type": "object"
},
"RunMode": {
"additionalProperties": false,
"properties": {
"name": {
"anyOf": [
{
"const": "deepimagej",
"type": "string"
},
{
"type": "string"
}
],
"description": "Run mode name",
"title": "Name"
},
"kwargs": {
"additionalProperties": true,
"description": "Run mode specific key word arguments",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"name"
],
"title": "model.v0_4.RunMode",
"type": "object"
},
"ScaleLinearAlongAxisKwargs": {
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"axis": {
"description": "The axis of gain and offset values.",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"gain": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 0.0,
"description": "additive term",
"title": "Offset"
}
},
"required": [
"axis"
],
"title": "model.v0_5.ScaleLinearAlongAxisKwargs",
"type": "object"
},
"ScaleLinearDescr": {
"additionalProperties": false,
"description": "Fixed linear scaling.\n\nExamples:\n 1. Scale with scalar gain and offset\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_linear\n kwargs:\n gain: 2.0\n offset: 3.0\n ```\n - in Python:\n\n >>> preprocessing = [\n ... ScaleLinearDescr(kwargs=ScaleLinearKwargs(gain= 2.0, offset=3.0))\n ... ]\n\n 2. Independent scaling along an axis\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_linear\n kwargs:\n axis: 'channel'\n gain: [1.0, 2.0, 3.0]\n ```\n - in Python:\n\n >>> preprocessing = [\n ... ScaleLinearDescr(\n ... kwargs=ScaleLinearAlongAxisKwargs(\n ... axis=AxisId(\"channel\"),\n ... gain=[1.0, 2.0, 3.0],\n ... )\n ... )\n ... ]",
"properties": {
"id": {
"const": "scale_linear",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/ScaleLinearKwargs"
},
{
"$ref": "#/$defs/ScaleLinearAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ScaleLinearDescr",
"type": "object"
},
"ScaleLinearKwargs": {
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"gain": {
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain",
"type": "number"
},
"offset": {
"default": 0.0,
"description": "additive term",
"title": "Offset",
"type": "number"
}
},
"title": "model.v0_5.ScaleLinearKwargs",
"type": "object"
},
"ScaleMeanVarianceDescr": {
"additionalProperties": false,
"description": "Scale a tensor's data distribution to match another tensor's mean/std.\n`out = (tensor - mean) / (std + eps) * (ref_std + eps) + ref_mean.`",
"properties": {
"id": {
"const": "scale_mean_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ScaleMeanVarianceKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ScaleMeanVarianceDescr",
"type": "object"
},
"ScaleMeanVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ScaleMeanVarianceKwargs][]",
"properties": {
"reference_tensor": {
"description": "ID of unprocessed input tensor to match.",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize samples independently, leave out the 'batch' axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"eps": {
"default": 1e-06,
"description": "Epsilon for numeric stability:\n`out = (tensor - mean) / (std + eps) * (ref_std + eps) + ref_mean.`",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
}
},
"required": [
"reference_tensor"
],
"title": "model.v0_5.ScaleMeanVarianceKwargs",
"type": "object"
},
"ScaleRangeDescr": {
"additionalProperties": false,
"description": "Scale with percentiles.\n\nExamples:\n1. Scale linearly to map 5th percentile to 0 and 99.8th percentile to 1.0\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n ```\n - in Python\n\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... )\n ... ]\n\n 2. Combine the above scaling with additional clipping to clip values outside the range given by the percentiles.\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n - id: clip\n kwargs:\n min: 0.0\n max: 1.0\n ```\n - in Python\n\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... ),\n ... ClipDescr(\n ... kwargs=ClipKwargs(\n ... min=0.0,\n ... max=1.0,\n ... )\n ... ),\n ... ]",
"properties": {
"id": {
"const": "scale_range",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ScaleRangeKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.ScaleRangeDescr",
"type": "object"
},
"ScaleRangeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ScaleRangeDescr][]\n\nFor `min_percentile`=0.0 (the default) and `max_percentile`=100 (the default)\nthis processing step normalizes data to the [0, 1] intervall.\nFor other percentiles the normalized values will partially be outside the [0, 1]\nintervall. Use `ScaleRange` followed by `ClipDescr` if you want to limit the\nnormalized values to a range.",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute the min/max percentile value.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize samples independently, leave out the \"batch\" axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"min_percentile": {
"default": 0.0,
"description": "The lower percentile used to determine the value to align with zero.",
"exclusiveMaximum": 100,
"minimum": 0,
"title": "Min Percentile",
"type": "number"
},
"max_percentile": {
"default": 100.0,
"description": "The upper percentile used to determine the value to align with one.\nHas to be bigger than `min_percentile`.\nThe range is 1 to 100 instead of 0 to 100 to avoid mistakenly\naccepting percentiles specified in the range 0.0 to 1.0.",
"exclusiveMinimum": 1,
"maximum": 100,
"title": "Max Percentile",
"type": "number"
},
"eps": {
"default": 1e-06,
"description": "Epsilon for numeric stability.\n`out = (tensor - v_lower) / (v_upper - v_lower + eps)`;\nwith `v_lower,v_upper` values at the respective percentiles.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
},
"reference_tensor": {
"anyOf": [
{
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the unprocessed input tensor to compute the percentiles from.\nDefault: The tensor itself.",
"title": "Reference Tensor"
}
},
"title": "model.v0_5.ScaleRangeKwargs",
"type": "object"
},
"SigmoidDescr": {
"additionalProperties": false,
"description": "The logistic sigmoid function, a.k.a. expit function.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: sigmoid\n ```\n- in Python:\n\n >>> postprocessing = [SigmoidDescr()]",
"properties": {
"id": {
"const": "sigmoid",
"title": "Id",
"type": "string"
}
},
"required": [
"id"
],
"title": "model.v0_5.SigmoidDescr",
"type": "object"
},
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
},
"SoftmaxDescr": {
"additionalProperties": false,
"description": "The softmax function.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: softmax\n kwargs:\n axis: channel\n ```\n- in Python:\n\n >>> postprocessing = [SoftmaxDescr(kwargs=SoftmaxKwargs(axis=AxisId(\"channel\")))]",
"properties": {
"id": {
"const": "softmax",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/SoftmaxKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.SoftmaxDescr",
"type": "object"
},
"SoftmaxKwargs": {
"additionalProperties": false,
"description": "key word arguments for [SoftmaxDescr][]",
"properties": {
"axis": {
"default": "channel",
"description": "The axis to apply the softmax function along.\nNote:\n Defaults to 'channel' axis\n (which may not exist, in which case\n a different axis id has to be specified).",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"title": "model.v0_5.SoftmaxKwargs",
"type": "object"
},
"SpaceInputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.SpaceInputAxis",
"type": "object"
},
"SpaceOutputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.SpaceOutputAxis",
"type": "object"
},
"SpaceOutputAxisWithHalo": {
"additionalProperties": false,
"properties": {
"halo": {
"description": "The halo should be cropped from the output tensor to avoid boundary effects.\nIt is to be cropped from both sides, i.e. `size_after_crop = size - 2 * halo`.\nTo document a halo that is already cropped by the model use `size.offset` instead.",
"minimum": 1,
"title": "Halo",
"type": "integer"
},
"size": {
"$ref": "#/$defs/SizeReference",
"description": "reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
]
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"halo",
"size",
"type"
],
"title": "model.v0_5.SpaceOutputAxisWithHalo",
"type": "object"
},
"StardistPostprocessingDescr": {
"additionalProperties": false,
"description": "Stardist postprocessing including non-maximum suppression and converting polygon representations to instance labels\n\nas described in:\n- Uwe Schmidt, Martin Weigert, Coleman Broaddus, and Gene Myers.\n[*Cell Detection with Star-convex Polygons*](https://arxiv.org/abs/1806.03535).\nInternational Conference on Medical Image Computing and Computer-Assisted Intervention (MICCAI), Granada, Spain, September 2018.\n- Martin Weigert, Uwe Schmidt, Robert Haase, Ko Sugawara, and Gene Myers.\n[*Star-convex Polyhedra for 3D Object Detection and Segmentation in Microscopy*](http://openaccess.thecvf.com/content_WACV_2020/papers/Weigert_Star-convex_Polyhedra_for_3D_Object_Detection_and_Segmentation_in_Microscopy_WACV_2020_paper.pdf).\nThe IEEE Winter Conference on Applications of Computer Vision (WACV), Snowmass Village, Colorado, March 2020.\n\nNote: Only available if the `stardist` package is installed.",
"properties": {
"id": {
"const": "stardist_postprocessing",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/StardistPostprocessingKwargs2D"
},
{
"$ref": "#/$defs/StardistPostprocessingKwargs3D"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.StardistPostprocessingDescr",
"type": "object"
},
"StardistPostprocessingKwargs2D": {
"additionalProperties": false,
"properties": {
"prob_threshold": {
"description": "The probability threshold for object candidate selection.",
"title": "Prob Threshold",
"type": "number"
},
"nms_threshold": {
"description": "The IoU threshold for non-maximum suppression.",
"title": "Nms Threshold",
"type": "number"
},
"n_rays": {
"description": "Number of radial lines (rays) cast from the center of an object to its boundary.",
"title": "N Rays",
"type": "integer"
},
"grid": {
"description": "Grid size of network predictions.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"title": "Grid",
"type": "array"
},
"b": {
"anyOf": [
{
"type": "integer"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
}
],
"type": "array"
}
],
"description": "Border region in which object probability is set to zero.",
"title": "B"
}
},
"required": [
"prob_threshold",
"nms_threshold",
"n_rays",
"grid",
"b"
],
"title": "model.v0_5.StardistPostprocessingKwargs2D",
"type": "object"
},
"StardistPostprocessingKwargs3D": {
"additionalProperties": false,
"properties": {
"prob_threshold": {
"description": "The probability threshold for object candidate selection.",
"title": "Prob Threshold",
"type": "number"
},
"nms_threshold": {
"description": "The IoU threshold for non-maximum suppression.",
"title": "Nms Threshold",
"type": "number"
},
"n_rays": {
"description": "Number of radial lines (rays) cast from the center of an object to its boundary.",
"title": "N Rays",
"type": "integer"
},
"grid": {
"description": "Grid size of network predictions.",
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
},
{
"type": "integer"
}
],
"title": "Grid",
"type": "array"
},
"b": {
"anyOf": [
{
"type": "integer"
},
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
}
],
"type": "array"
}
],
"description": "Border region in which object probability is set to zero.",
"title": "B"
},
"anisotropy": {
"description": "Anisotropy factors for 3D star-convex polyhedra, i.e. the physical pixel size along each spatial axis.",
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
],
"title": "Anisotropy",
"type": "array"
},
"overlap_label": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional label to apply to any area of overlapping predicted objects.",
"title": "Overlap Label"
}
},
"required": [
"prob_threshold",
"nms_threshold",
"n_rays",
"grid",
"b",
"anisotropy"
],
"title": "model.v0_5.StardistPostprocessingKwargs3D",
"type": "object"
},
"SymmetricPadding": {
"additionalProperties": false,
"properties": {
"mode": {
"const": "symmetric",
"default": "symmetric",
"title": "Mode",
"type": "string"
}
},
"title": "model.v0_5.SymmetricPadding",
"type": "object"
},
"TensorflowJsWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "The multi-file weights.\nAll required files/folders should be a zip archive.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"tensorflow_version": {
"$ref": "#/$defs/Version",
"description": "Version of the TensorFlow library used."
}
},
"required": [
"source",
"tensorflow_version"
],
"title": "model.v0_5.TensorflowJsWeightsDescr",
"type": "object"
},
"TensorflowSavedModelBundleWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "The multi-file weights.\nAll required files/folders should be a zip archive.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"tensorflow_version": {
"$ref": "#/$defs/Version",
"description": "Version of the TensorFlow library used."
},
"dependencies": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "environment.yaml"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Custom dependencies beyond tensorflow.\nShould include tensorflow and any version pinning has to be compatible with **tensorflow_version**."
}
},
"required": [
"source",
"tensorflow_version"
],
"title": "model.v0_5.TensorflowSavedModelBundleWeightsDescr",
"type": "object"
},
"TimeInputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.TimeInputAxis",
"type": "object"
},
"TimeOutputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.TimeOutputAxis",
"type": "object"
},
"TimeOutputAxisWithHalo": {
"additionalProperties": false,
"properties": {
"halo": {
"description": "The halo should be cropped from the output tensor to avoid boundary effects.\nIt is to be cropped from both sides, i.e. `size_after_crop = size - 2 * halo`.\nTo document a halo that is already cropped by the model use `size.offset` instead.",
"minimum": 1,
"title": "Halo",
"type": "integer"
},
"size": {
"$ref": "#/$defs/SizeReference",
"description": "reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
]
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"halo",
"size",
"type"
],
"title": "model.v0_5.TimeOutputAxisWithHalo",
"type": "object"
},
"TorchscriptWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"pytorch_version": {
"$ref": "#/$defs/Version",
"description": "Version of the PyTorch library used."
}
},
"required": [
"source",
"pytorch_version"
],
"title": "model.v0_5.TorchscriptWeightsDescr",
"type": "object"
},
"TrainingDetails": {
"additionalProperties": true,
"properties": {
"training_preprocessing": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Detailed image preprocessing steps during model training:\n\nMention:\n- *Normalization methods*\n- *Augmentation strategies*\n- *Resizing/resampling procedures*\n- *Artifact handling*",
"title": "Training Preprocessing"
},
"training_epochs": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of training epochs.",
"title": "Training Epochs"
},
"training_batch_size": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Batch size used in training.",
"title": "Training Batch Size"
},
"initial_learning_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Initial learning rate used in training.",
"title": "Initial Learning Rate"
},
"learning_rate_schedule": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Learning rate schedule used in training.",
"title": "Learning Rate Schedule"
},
"loss_function": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Loss function used in training, e.g. nn.MSELoss.",
"title": "Loss Function"
},
"loss_function_kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `loss_function`",
"title": "Loss Function Kwargs",
"type": "object"
},
"optimizer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "optimizer, e.g. torch.optim.Adam",
"title": "Optimizer"
},
"optimizer_kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `optimizer`",
"title": "Optimizer Kwargs",
"type": "object"
},
"regularization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Regularization techniques used during training, e.g. drop-out or weight decay.",
"title": "Regularization"
},
"training_duration": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total training duration in hours.",
"title": "Training Duration"
}
},
"title": "model.v0_5.TrainingDetails",
"type": "object"
},
"Uploader": {
"additionalProperties": false,
"properties": {
"email": {
"description": "Email",
"format": "email",
"title": "Email",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "name",
"title": "Name"
}
},
"required": [
"email"
],
"title": "generic.v0_2.Uploader",
"type": "object"
},
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
},
"WeightsDescr": {
"additionalProperties": false,
"properties": {
"keras_hdf5": {
"anyOf": [
{
"$ref": "#/$defs/KerasHdf5WeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"keras_v3": {
"anyOf": [
{
"$ref": "#/$defs/KerasV3WeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"onnx": {
"anyOf": [
{
"$ref": "#/$defs/OnnxWeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"pytorch_state_dict": {
"anyOf": [
{
"$ref": "#/$defs/PytorchStateDictWeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"tensorflow_js": {
"anyOf": [
{
"$ref": "#/$defs/TensorflowJsWeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"tensorflow_saved_model_bundle": {
"anyOf": [
{
"$ref": "#/$defs/TensorflowSavedModelBundleWeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"torchscript": {
"anyOf": [
{
"$ref": "#/$defs/TorchscriptWeightsDescr"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "model.v0_5.WeightsDescr",
"type": "object"
},
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
},
"ZeroMeanUnitVarianceDescr": {
"additionalProperties": false,
"description": "Subtract mean and divide by variance.\n\nExamples:\n Subtract tensor mean and variance\n - in YAML\n ```yaml\n preprocessing:\n - id: zero_mean_unit_variance\n ```\n - in Python\n >>> preprocessing = [ZeroMeanUnitVarianceDescr()]",
"properties": {
"id": {
"const": "zero_mean_unit_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ZeroMeanUnitVarianceKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.ZeroMeanUnitVarianceDescr",
"type": "object"
},
"ZeroMeanUnitVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ZeroMeanUnitVarianceDescr][]",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize each sample independently leave out the 'batch' axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"eps": {
"default": 1e-06,
"description": "epsilon for numeric stability: `out = (tensor - mean) / (std + eps)`.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
}
},
"title": "model.v0_5.ZeroMeanUnitVarianceKwargs",
"type": "object"
},
"bioimageio__spec__dataset__v0_2__DatasetDescr": {
"additionalProperties": false,
"description": "A bioimage.io dataset resource description file (dataset RDF) describes a dataset relevant to bioimage\nprocessing.",
"properties": {
"name": {
"description": "A human-friendly name of the resource description",
"minLength": 1,
"title": "Name",
"type": "string"
},
"description": {
"title": "Description",
"type": "string"
},
"covers": {
"description": "Cover images. Please use an image smaller than 500KB and an aspect ratio width to height of 2:1.\nThe supported image formats are: ('.gif', '.jpeg', '.jpg', '.png', '.svg', '.tif', '.tiff')",
"examples": [
[
"cover.png"
]
],
"items": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"title": "FileSource"
},
"title": "Covers",
"type": "array"
},
"id_emoji": {
"anyOf": [
{
"examples": [
"\ud83e\udd88",
"\ud83e\udda5"
],
"maxLength": 1,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "UTF-8 emoji for display alongside the `id`.",
"title": "Id Emoji"
},
"authors": {
"description": "The authors are the creators of the RDF and the primary points of contact.",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_2__Author"
},
"title": "Authors",
"type": "array"
},
"attachments": {
"anyOf": [
{
"$ref": "#/$defs/AttachmentsDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "file and other attachments"
},
"cite": {
"description": "citations",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_2__CiteEntry"
},
"title": "Cite",
"type": "array"
},
"config": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "A field for custom configuration that can contain any keys not present in the RDF spec.\nThis means you should not store, for example, a github repo URL in `config` since we already have the\n`git_repo` field defined in the spec.\nKeys in `config` may be very specific to a tool or consumer software. To avoid conflicting definitions,\nit is recommended to wrap added configuration into a sub-field named with the specific domain or tool name,\nfor example:\n```yaml\nconfig:\n bioimageio: # here is the domain name\n my_custom_key: 3837283\n another_key:\n nested: value\n imagej: # config specific to ImageJ\n macro_dir: path/to/macro/file\n```\nIf possible, please use [`snake_case`](https://en.wikipedia.org/wiki/Snake_case) for keys in `config`.\nYou may want to list linked files additionally under `attachments` to include them when packaging a resource\n(packaging a resource means downloading/copying important linked files and creating a ZIP archive that contains\nan altered rdf.yaml file with local references to the downloaded files)",
"examples": [
{
"bioimageio": {
"another_key": {
"nested": "value"
},
"my_custom_key": 3837283
},
"imagej": {
"macro_dir": "path/to/macro/file"
}
}
],
"title": "Config",
"type": "object"
},
"download_url": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "URL to download the resource from (deprecated)",
"title": "Download Url"
},
"git_repo": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A URL to the Git repository where the resource is being developed.",
"examples": [
"https://github.com/bioimage-io/spec-bioimage-io/tree/main/example_descriptions/models/unet2d_nuclei_broad"
],
"title": "Git Repo"
},
"icon": {
"anyOf": [
{
"maxLength": 2,
"minLength": 1,
"type": "string"
},
{
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"title": "FileSource"
},
{
"type": "null"
}
],
"default": null,
"description": "An icon for illustration",
"title": "Icon"
},
"links": {
"description": "IDs of other bioimage.io resources",
"examples": [
[
"ilastik/ilastik",
"deepimagej/deepimagej",
"zero/notebook_u-net_3d_zerocostdl4mic"
]
],
"items": {
"type": "string"
},
"title": "Links",
"type": "array"
},
"uploader": {
"anyOf": [
{
"$ref": "#/$defs/Uploader"
},
{
"type": "null"
}
],
"default": null,
"description": "The person who uploaded the model (e.g. to bioimage.io)"
},
"maintainers": {
"description": "Maintainers of this resource.\nIf not specified `authors` are maintainers and at least some of them should specify their `github_user` name",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_2__Maintainer"
},
"title": "Maintainers",
"type": "array"
},
"rdf_source": {
"anyOf": [
{
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"title": "FileSource"
},
{
"type": "null"
}
],
"default": null,
"description": "Resource description file (RDF) source; used to keep track of where an rdf.yaml was loaded from.\nDo not set this field in a YAML file.",
"title": "Rdf Source"
},
"tags": {
"description": "Associated tags",
"examples": [
[
"unet2d",
"pytorch",
"nucleus",
"segmentation",
"dsb2018"
]
],
"items": {
"type": "string"
},
"title": "Tags",
"type": "array"
},
"version": {
"anyOf": [
{
"$ref": "#/$defs/Version"
},
{
"type": "null"
}
],
"default": null,
"description": "The version of the resource following SemVer 2.0."
},
"version_number": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "version number (n-th published version, not the semantic version)",
"title": "Version Number"
},
"format_version": {
"const": "0.2.4",
"description": "The format version of this resource specification\n(not the `version` of the resource description)\nWhen creating a new resource always use the latest micro/patch version described here.\nThe `format_version` is important for any consumer software to understand how to parse the fields.",
"title": "Format Version",
"type": "string"
},
"badges": {
"description": "badges associated with this resource",
"items": {
"$ref": "#/$defs/BadgeDescr"
},
"title": "Badges",
"type": "array"
},
"documentation": {
"anyOf": [
{
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"title": "FileSource"
},
{
"type": "null"
}
],
"default": null,
"description": "URL or relative path to a markdown file with additional documentation.\nThe recommended documentation file name is `README.md`. An `.md` suffix is mandatory.",
"examples": [
"https://raw.githubusercontent.com/bioimage-io/spec-bioimage-io/main/example_descriptions/models/unet2d_nuclei_broad/README.md",
"README.md"
],
"title": "Documentation"
},
"license": {
"anyOf": [
{
"enum": [
"0BSD",
"3D-Slicer-1.0",
"AAL",
"Abstyles",
"AdaCore-doc",
"Adobe-2006",
"Adobe-Display-PostScript",
"Adobe-Glyph",
"Adobe-Utopia",
"ADSL",
"AFL-1.1",
"AFL-1.2",
"AFL-2.0",
"AFL-2.1",
"AFL-3.0",
"Afmparse",
"AGPL-1.0-only",
"AGPL-1.0-or-later",
"AGPL-3.0-only",
"AGPL-3.0-or-later",
"Aladdin",
"AMD-newlib",
"AMDPLPA",
"AML",
"AML-glslang",
"AMPAS",
"ANTLR-PD",
"ANTLR-PD-fallback",
"any-OSI",
"any-OSI-perl-modules",
"Apache-1.0",
"Apache-1.1",
"Apache-2.0",
"APAFML",
"APL-1.0",
"App-s2p",
"APSL-1.0",
"APSL-1.1",
"APSL-1.2",
"APSL-2.0",
"Arphic-1999",
"Artistic-1.0",
"Artistic-1.0-cl8",
"Artistic-1.0-Perl",
"Artistic-2.0",
"Artistic-dist",
"Aspell-RU",
"ASWF-Digital-Assets-1.0",
"ASWF-Digital-Assets-1.1",
"Baekmuk",
"Bahyph",
"Barr",
"bcrypt-Solar-Designer",
"Beerware",
"Bitstream-Charter",
"Bitstream-Vera",
"BitTorrent-1.0",
"BitTorrent-1.1",
"blessing",
"BlueOak-1.0.0",
"Boehm-GC",
"Boehm-GC-without-fee",
"Borceux",
"Brian-Gladman-2-Clause",
"Brian-Gladman-3-Clause",
"BSD-1-Clause",
"BSD-2-Clause",
"BSD-2-Clause-Darwin",
"BSD-2-Clause-first-lines",
"BSD-2-Clause-Patent",
"BSD-2-Clause-pkgconf-disclaimer",
"BSD-2-Clause-Views",
"BSD-3-Clause",
"BSD-3-Clause-acpica",
"BSD-3-Clause-Attribution",
"BSD-3-Clause-Clear",
"BSD-3-Clause-flex",
"BSD-3-Clause-HP",
"BSD-3-Clause-LBNL",
"BSD-3-Clause-Modification",
"BSD-3-Clause-No-Military-License",
"BSD-3-Clause-No-Nuclear-License",
"BSD-3-Clause-No-Nuclear-License-2014",
"BSD-3-Clause-No-Nuclear-Warranty",
"BSD-3-Clause-Open-MPI",
"BSD-3-Clause-Sun",
"BSD-4-Clause",
"BSD-4-Clause-Shortened",
"BSD-4-Clause-UC",
"BSD-4.3RENO",
"BSD-4.3TAHOE",
"BSD-Advertising-Acknowledgement",
"BSD-Attribution-HPND-disclaimer",
"BSD-Inferno-Nettverk",
"BSD-Protection",
"BSD-Source-beginning-file",
"BSD-Source-Code",
"BSD-Systemics",
"BSD-Systemics-W3Works",
"BSL-1.0",
"BUSL-1.1",
"bzip2-1.0.6",
"C-UDA-1.0",
"CAL-1.0",
"CAL-1.0-Combined-Work-Exception",
"Caldera",
"Caldera-no-preamble",
"Catharon",
"CATOSL-1.1",
"CC-BY-1.0",
"CC-BY-2.0",
"CC-BY-2.5",
"CC-BY-2.5-AU",
"CC-BY-3.0",
"CC-BY-3.0-AT",
"CC-BY-3.0-AU",
"CC-BY-3.0-DE",
"CC-BY-3.0-IGO",
"CC-BY-3.0-NL",
"CC-BY-3.0-US",
"CC-BY-4.0",
"CC-BY-NC-1.0",
"CC-BY-NC-2.0",
"CC-BY-NC-2.5",
"CC-BY-NC-3.0",
"CC-BY-NC-3.0-DE",
"CC-BY-NC-4.0",
"CC-BY-NC-ND-1.0",
"CC-BY-NC-ND-2.0",
"CC-BY-NC-ND-2.5",
"CC-BY-NC-ND-3.0",
"CC-BY-NC-ND-3.0-DE",
"CC-BY-NC-ND-3.0-IGO",
"CC-BY-NC-ND-4.0",
"CC-BY-NC-SA-1.0",
"CC-BY-NC-SA-2.0",
"CC-BY-NC-SA-2.0-DE",
"CC-BY-NC-SA-2.0-FR",
"CC-BY-NC-SA-2.0-UK",
"CC-BY-NC-SA-2.5",
"CC-BY-NC-SA-3.0",
"CC-BY-NC-SA-3.0-DE",
"CC-BY-NC-SA-3.0-IGO",
"CC-BY-NC-SA-4.0",
"CC-BY-ND-1.0",
"CC-BY-ND-2.0",
"CC-BY-ND-2.5",
"CC-BY-ND-3.0",
"CC-BY-ND-3.0-DE",
"CC-BY-ND-4.0",
"CC-BY-SA-1.0",
"CC-BY-SA-2.0",
"CC-BY-SA-2.0-UK",
"CC-BY-SA-2.1-JP",
"CC-BY-SA-2.5",
"CC-BY-SA-3.0",
"CC-BY-SA-3.0-AT",
"CC-BY-SA-3.0-DE",
"CC-BY-SA-3.0-IGO",
"CC-BY-SA-4.0",
"CC-PDDC",
"CC-PDM-1.0",
"CC-SA-1.0",
"CC0-1.0",
"CDDL-1.0",
"CDDL-1.1",
"CDL-1.0",
"CDLA-Permissive-1.0",
"CDLA-Permissive-2.0",
"CDLA-Sharing-1.0",
"CECILL-1.0",
"CECILL-1.1",
"CECILL-2.0",
"CECILL-2.1",
"CECILL-B",
"CECILL-C",
"CERN-OHL-1.1",
"CERN-OHL-1.2",
"CERN-OHL-P-2.0",
"CERN-OHL-S-2.0",
"CERN-OHL-W-2.0",
"CFITSIO",
"check-cvs",
"checkmk",
"ClArtistic",
"Clips",
"CMU-Mach",
"CMU-Mach-nodoc",
"CNRI-Jython",
"CNRI-Python",
"CNRI-Python-GPL-Compatible",
"COIL-1.0",
"Community-Spec-1.0",
"Condor-1.1",
"copyleft-next-0.3.0",
"copyleft-next-0.3.1",
"Cornell-Lossless-JPEG",
"CPAL-1.0",
"CPL-1.0",
"CPOL-1.02",
"Cronyx",
"Crossword",
"CryptoSwift",
"CrystalStacker",
"CUA-OPL-1.0",
"Cube",
"curl",
"cve-tou",
"D-FSL-1.0",
"DEC-3-Clause",
"diffmark",
"DL-DE-BY-2.0",
"DL-DE-ZERO-2.0",
"DOC",
"DocBook-DTD",
"DocBook-Schema",
"DocBook-Stylesheet",
"DocBook-XML",
"Dotseqn",
"DRL-1.0",
"DRL-1.1",
"DSDP",
"dtoa",
"dvipdfm",
"ECL-1.0",
"ECL-2.0",
"EFL-1.0",
"EFL-2.0",
"eGenix",
"Elastic-2.0",
"Entessa",
"EPICS",
"EPL-1.0",
"EPL-2.0",
"ErlPL-1.1",
"etalab-2.0",
"EUDatagrid",
"EUPL-1.0",
"EUPL-1.1",
"EUPL-1.2",
"Eurosym",
"Fair",
"FBM",
"FDK-AAC",
"Ferguson-Twofish",
"Frameworx-1.0",
"FreeBSD-DOC",
"FreeImage",
"FSFAP",
"FSFAP-no-warranty-disclaimer",
"FSFUL",
"FSFULLR",
"FSFULLRSD",
"FSFULLRWD",
"FSL-1.1-ALv2",
"FSL-1.1-MIT",
"FTL",
"Furuseth",
"fwlw",
"Game-Programming-Gems",
"GCR-docs",
"GD",
"generic-xts",
"GFDL-1.1-invariants-only",
"GFDL-1.1-invariants-or-later",
"GFDL-1.1-no-invariants-only",
"GFDL-1.1-no-invariants-or-later",
"GFDL-1.1-only",
"GFDL-1.1-or-later",
"GFDL-1.2-invariants-only",
"GFDL-1.2-invariants-or-later",
"GFDL-1.2-no-invariants-only",
"GFDL-1.2-no-invariants-or-later",
"GFDL-1.2-only",
"GFDL-1.2-or-later",
"GFDL-1.3-invariants-only",
"GFDL-1.3-invariants-or-later",
"GFDL-1.3-no-invariants-only",
"GFDL-1.3-no-invariants-or-later",
"GFDL-1.3-only",
"GFDL-1.3-or-later",
"Giftware",
"GL2PS",
"Glide",
"Glulxe",
"GLWTPL",
"gnuplot",
"GPL-1.0-only",
"GPL-1.0-or-later",
"GPL-2.0-only",
"GPL-2.0-or-later",
"GPL-3.0-only",
"GPL-3.0-or-later",
"Graphics-Gems",
"gSOAP-1.3b",
"gtkbook",
"Gutmann",
"HaskellReport",
"HDF5",
"hdparm",
"HIDAPI",
"Hippocratic-2.1",
"HP-1986",
"HP-1989",
"HPND",
"HPND-DEC",
"HPND-doc",
"HPND-doc-sell",
"HPND-export-US",
"HPND-export-US-acknowledgement",
"HPND-export-US-modify",
"HPND-export2-US",
"HPND-Fenneberg-Livingston",
"HPND-INRIA-IMAG",
"HPND-Intel",
"HPND-Kevlin-Henney",
"HPND-Markus-Kuhn",
"HPND-merchantability-variant",
"HPND-MIT-disclaimer",
"HPND-Netrek",
"HPND-Pbmplus",
"HPND-sell-MIT-disclaimer-xserver",
"HPND-sell-regexpr",
"HPND-sell-variant",
"HPND-sell-variant-MIT-disclaimer",
"HPND-sell-variant-MIT-disclaimer-rev",
"HPND-UC",
"HPND-UC-export-US",
"HTMLTIDY",
"IBM-pibs",
"ICU",
"IEC-Code-Components-EULA",
"IJG",
"IJG-short",
"ImageMagick",
"iMatix",
"Imlib2",
"Info-ZIP",
"Inner-Net-2.0",
"InnoSetup",
"Intel",
"Intel-ACPI",
"Interbase-1.0",
"IPA",
"IPL-1.0",
"ISC",
"ISC-Veillard",
"Jam",
"JasPer-2.0",
"jove",
"JPL-image",
"JPNIC",
"JSON",
"Kastrup",
"Kazlib",
"Knuth-CTAN",
"LAL-1.2",
"LAL-1.3",
"Latex2e",
"Latex2e-translated-notice",
"Leptonica",
"LGPL-2.0-only",
"LGPL-2.0-or-later",
"LGPL-2.1-only",
"LGPL-2.1-or-later",
"LGPL-3.0-only",
"LGPL-3.0-or-later",
"LGPLLR",
"Libpng",
"libpng-1.6.35",
"libpng-2.0",
"libselinux-1.0",
"libtiff",
"libutil-David-Nugent",
"LiLiQ-P-1.1",
"LiLiQ-R-1.1",
"LiLiQ-Rplus-1.1",
"Linux-man-pages-1-para",
"Linux-man-pages-copyleft",
"Linux-man-pages-copyleft-2-para",
"Linux-man-pages-copyleft-var",
"Linux-OpenIB",
"LOOP",
"LPD-document",
"LPL-1.0",
"LPL-1.02",
"LPPL-1.0",
"LPPL-1.1",
"LPPL-1.2",
"LPPL-1.3a",
"LPPL-1.3c",
"lsof",
"Lucida-Bitmap-Fonts",
"LZMA-SDK-9.11-to-9.20",
"LZMA-SDK-9.22",
"Mackerras-3-Clause",
"Mackerras-3-Clause-acknowledgment",
"magaz",
"mailprio",
"MakeIndex",
"man2html",
"Martin-Birgmeier",
"McPhee-slideshow",
"metamail",
"Minpack",
"MIPS",
"MirOS",
"MIT",
"MIT-0",
"MIT-advertising",
"MIT-Click",
"MIT-CMU",
"MIT-enna",
"MIT-feh",
"MIT-Festival",
"MIT-Khronos-old",
"MIT-Modern-Variant",
"MIT-open-group",
"MIT-testregex",
"MIT-Wu",
"MITNFA",
"MMIXware",
"Motosoto",
"MPEG-SSG",
"mpi-permissive",
"mpich2",
"MPL-1.0",
"MPL-1.1",
"MPL-2.0",
"MPL-2.0-no-copyleft-exception",
"mplus",
"MS-LPL",
"MS-PL",
"MS-RL",
"MTLL",
"MulanPSL-1.0",
"MulanPSL-2.0",
"Multics",
"Mup",
"NAIST-2003",
"NASA-1.3",
"Naumen",
"NBPL-1.0",
"NCBI-PD",
"NCGL-UK-2.0",
"NCL",
"NCSA",
"NetCDF",
"Newsletr",
"NGPL",
"ngrep",
"NICTA-1.0",
"NIST-PD",
"NIST-PD-fallback",
"NIST-Software",
"NLOD-1.0",
"NLOD-2.0",
"NLPL",
"Nokia",
"NOSL",
"Noweb",
"NPL-1.0",
"NPL-1.1",
"NPOSL-3.0",
"NRL",
"NTIA-PD",
"NTP",
"NTP-0",
"O-UDA-1.0",
"OAR",
"OCCT-PL",
"OCLC-2.0",
"ODbL-1.0",
"ODC-By-1.0",
"OFFIS",
"OFL-1.0",
"OFL-1.0-no-RFN",
"OFL-1.0-RFN",
"OFL-1.1",
"OFL-1.1-no-RFN",
"OFL-1.1-RFN",
"OGC-1.0",
"OGDL-Taiwan-1.0",
"OGL-Canada-2.0",
"OGL-UK-1.0",
"OGL-UK-2.0",
"OGL-UK-3.0",
"OGTSL",
"OLDAP-1.1",
"OLDAP-1.2",
"OLDAP-1.3",
"OLDAP-1.4",
"OLDAP-2.0",
"OLDAP-2.0.1",
"OLDAP-2.1",
"OLDAP-2.2",
"OLDAP-2.2.1",
"OLDAP-2.2.2",
"OLDAP-2.3",
"OLDAP-2.4",
"OLDAP-2.5",
"OLDAP-2.6",
"OLDAP-2.7",
"OLDAP-2.8",
"OLFL-1.3",
"OML",
"OpenPBS-2.3",
"OpenSSL",
"OpenSSL-standalone",
"OpenVision",
"OPL-1.0",
"OPL-UK-3.0",
"OPUBL-1.0",
"OSET-PL-2.1",
"OSL-1.0",
"OSL-1.1",
"OSL-2.0",
"OSL-2.1",
"OSL-3.0",
"PADL",
"Parity-6.0.0",
"Parity-7.0.0",
"PDDL-1.0",
"PHP-3.0",
"PHP-3.01",
"Pixar",
"pkgconf",
"Plexus",
"pnmstitch",
"PolyForm-Noncommercial-1.0.0",
"PolyForm-Small-Business-1.0.0",
"PostgreSQL",
"PPL",
"PSF-2.0",
"psfrag",
"psutils",
"Python-2.0",
"Python-2.0.1",
"python-ldap",
"Qhull",
"QPL-1.0",
"QPL-1.0-INRIA-2004",
"radvd",
"Rdisc",
"RHeCos-1.1",
"RPL-1.1",
"RPL-1.5",
"RPSL-1.0",
"RSA-MD",
"RSCPL",
"Ruby",
"Ruby-pty",
"SAX-PD",
"SAX-PD-2.0",
"Saxpath",
"SCEA",
"SchemeReport",
"Sendmail",
"Sendmail-8.23",
"Sendmail-Open-Source-1.1",
"SGI-B-1.0",
"SGI-B-1.1",
"SGI-B-2.0",
"SGI-OpenGL",
"SGP4",
"SHL-0.5",
"SHL-0.51",
"SimPL-2.0",
"SISSL",
"SISSL-1.2",
"SL",
"Sleepycat",
"SMAIL-GPL",
"SMLNJ",
"SMPPL",
"SNIA",
"snprintf",
"SOFA",
"softSurfer",
"Soundex",
"Spencer-86",
"Spencer-94",
"Spencer-99",
"SPL-1.0",
"ssh-keyscan",
"SSH-OpenSSH",
"SSH-short",
"SSLeay-standalone",
"SSPL-1.0",
"SugarCRM-1.1.3",
"SUL-1.0",
"Sun-PPP",
"Sun-PPP-2000",
"SunPro",
"SWL",
"swrule",
"Symlinks",
"TAPR-OHL-1.0",
"TCL",
"TCP-wrappers",
"TermReadKey",
"TGPPL-1.0",
"ThirdEye",
"threeparttable",
"TMate",
"TORQUE-1.1",
"TOSL",
"TPDL",
"TPL-1.0",
"TrustedQSL",
"TTWL",
"TTYP0",
"TU-Berlin-1.0",
"TU-Berlin-2.0",
"Ubuntu-font-1.0",
"UCAR",
"UCL-1.0",
"ulem",
"UMich-Merit",
"Unicode-3.0",
"Unicode-DFS-2015",
"Unicode-DFS-2016",
"Unicode-TOU",
"UnixCrypt",
"Unlicense",
"Unlicense-libtelnet",
"Unlicense-libwhirlpool",
"UPL-1.0",
"URT-RLE",
"Vim",
"VOSTROM",
"VSL-1.0",
"W3C",
"W3C-19980720",
"W3C-20150513",
"w3m",
"Watcom-1.0",
"Widget-Workshop",
"Wsuipa",
"WTFPL",
"wwl",
"X11",
"X11-distribute-modifications-variant",
"X11-swapped",
"Xdebug-1.03",
"Xerox",
"Xfig",
"XFree86-1.1",
"xinetd",
"xkeyboard-config-Zinoviev",
"xlock",
"Xnet",
"xpp",
"XSkat",
"xzoom",
"YPL-1.0",
"YPL-1.1",
"Zed",
"Zeeff",
"Zend-2.0",
"Zimbra-1.3",
"Zimbra-1.4",
"Zlib",
"zlib-acknowledgement",
"ZPL-1.1",
"ZPL-2.0",
"ZPL-2.1"
],
"title": "LicenseId",
"type": "string"
},
{
"enum": [
"AGPL-1.0",
"AGPL-3.0",
"BSD-2-Clause-FreeBSD",
"BSD-2-Clause-NetBSD",
"bzip2-1.0.5",
"eCos-2.0",
"GFDL-1.1",
"GFDL-1.2",
"GFDL-1.3",
"GPL-1.0",
"GPL-1.0+",
"GPL-2.0",
"GPL-2.0+",
"GPL-2.0-with-autoconf-exception",
"GPL-2.0-with-bison-exception",
"GPL-2.0-with-classpath-exception",
"GPL-2.0-with-font-exception",
"GPL-2.0-with-GCC-exception",
"GPL-3.0",
"GPL-3.0+",
"GPL-3.0-with-autoconf-exception",
"GPL-3.0-with-GCC-exception",
"LGPL-2.0",
"LGPL-2.0+",
"LGPL-2.1",
"LGPL-2.1+",
"LGPL-3.0",
"LGPL-3.0+",
"Net-SNMP",
"Nunit",
"StandardML-NJ",
"wxWindows"
],
"title": "DeprecatedLicenseId",
"type": "string"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A [SPDX license identifier](https://spdx.org/licenses/).\nWe do not support custom license beyond the SPDX license list, if you need that please\n[open a GitHub issue](https://github.com/bioimage-io/spec-bioimage-io/issues/new/choose\n) to discuss your intentions with the community.",
"examples": [
"CC0-1.0",
"MIT",
"BSD-2-Clause"
],
"title": "License"
},
"type": {
"const": "dataset",
"title": "Type",
"type": "string"
},
"id": {
"anyOf": [
{
"minLength": 1,
"title": "DatasetId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "bioimage.io-wide unique resource identifier\nassigned by bioimage.io; version **un**specific.",
"title": "Id"
},
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "\"URL to the source of the dataset.",
"title": "Source"
}
},
"required": [
"name",
"description",
"format_version",
"type"
],
"title": "dataset 0.2.4",
"type": "object"
},
"bioimageio__spec__dataset__v0_3__DatasetDescr": {
"additionalProperties": false,
"description": "A bioimage.io dataset resource description file (dataset RDF) describes a dataset relevant to bioimage\nprocessing.",
"properties": {
"name": {
"description": "A human-friendly name of the resource description.\nMay only contains letters, digits, underscore, minus, parentheses and spaces.",
"maxLength": 128,
"minLength": 5,
"title": "Name",
"type": "string"
},
"description": {
"default": "",
"description": "A string containing a brief description.",
"maxLength": 1024,
"title": "Description",
"type": "string"
},
"covers": {
"description": "Cover images. Please use an image smaller than 500KB and an aspect ratio width to height of 2:1 or 1:1.\nThe supported image formats are: ('.gif', '.jpeg', '.jpg', '.png', '.svg')",
"examples": [
[
{
"source": "cover.png"
}
]
],
"items": {
"$ref": "#/$defs/FileDescr"
},
"title": "Covers",
"type": "array"
},
"documentation": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "README.md"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Additional model documentation.\nThe recommended documentation source file name is `README.md`. An `.md` suffix is mandatory."
},
"id_emoji": {
"anyOf": [
{
"examples": [
"\ud83e\udd88",
"\ud83e\udda5"
],
"maxLength": 2,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "UTF-8 emoji for display alongside the `id`.",
"title": "Id Emoji"
},
"authors": {
"description": "The authors are the creators of this resource description and the primary points of contact.",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"title": "Authors",
"type": "array"
},
"attachments": {
"description": "file attachments",
"items": {
"$ref": "#/$defs/FileDescr"
},
"title": "Attachments",
"type": "array"
},
"cite": {
"description": "citations",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__CiteEntry"
},
"title": "Cite",
"type": "array"
},
"license": {
"anyOf": [
{
"enum": [
"0BSD",
"3D-Slicer-1.0",
"AAL",
"Abstyles",
"AdaCore-doc",
"Adobe-2006",
"Adobe-Display-PostScript",
"Adobe-Glyph",
"Adobe-Utopia",
"ADSL",
"AFL-1.1",
"AFL-1.2",
"AFL-2.0",
"AFL-2.1",
"AFL-3.0",
"Afmparse",
"AGPL-1.0-only",
"AGPL-1.0-or-later",
"AGPL-3.0-only",
"AGPL-3.0-or-later",
"Aladdin",
"AMD-newlib",
"AMDPLPA",
"AML",
"AML-glslang",
"AMPAS",
"ANTLR-PD",
"ANTLR-PD-fallback",
"any-OSI",
"any-OSI-perl-modules",
"Apache-1.0",
"Apache-1.1",
"Apache-2.0",
"APAFML",
"APL-1.0",
"App-s2p",
"APSL-1.0",
"APSL-1.1",
"APSL-1.2",
"APSL-2.0",
"Arphic-1999",
"Artistic-1.0",
"Artistic-1.0-cl8",
"Artistic-1.0-Perl",
"Artistic-2.0",
"Artistic-dist",
"Aspell-RU",
"ASWF-Digital-Assets-1.0",
"ASWF-Digital-Assets-1.1",
"Baekmuk",
"Bahyph",
"Barr",
"bcrypt-Solar-Designer",
"Beerware",
"Bitstream-Charter",
"Bitstream-Vera",
"BitTorrent-1.0",
"BitTorrent-1.1",
"blessing",
"BlueOak-1.0.0",
"Boehm-GC",
"Boehm-GC-without-fee",
"Borceux",
"Brian-Gladman-2-Clause",
"Brian-Gladman-3-Clause",
"BSD-1-Clause",
"BSD-2-Clause",
"BSD-2-Clause-Darwin",
"BSD-2-Clause-first-lines",
"BSD-2-Clause-Patent",
"BSD-2-Clause-pkgconf-disclaimer",
"BSD-2-Clause-Views",
"BSD-3-Clause",
"BSD-3-Clause-acpica",
"BSD-3-Clause-Attribution",
"BSD-3-Clause-Clear",
"BSD-3-Clause-flex",
"BSD-3-Clause-HP",
"BSD-3-Clause-LBNL",
"BSD-3-Clause-Modification",
"BSD-3-Clause-No-Military-License",
"BSD-3-Clause-No-Nuclear-License",
"BSD-3-Clause-No-Nuclear-License-2014",
"BSD-3-Clause-No-Nuclear-Warranty",
"BSD-3-Clause-Open-MPI",
"BSD-3-Clause-Sun",
"BSD-4-Clause",
"BSD-4-Clause-Shortened",
"BSD-4-Clause-UC",
"BSD-4.3RENO",
"BSD-4.3TAHOE",
"BSD-Advertising-Acknowledgement",
"BSD-Attribution-HPND-disclaimer",
"BSD-Inferno-Nettverk",
"BSD-Protection",
"BSD-Source-beginning-file",
"BSD-Source-Code",
"BSD-Systemics",
"BSD-Systemics-W3Works",
"BSL-1.0",
"BUSL-1.1",
"bzip2-1.0.6",
"C-UDA-1.0",
"CAL-1.0",
"CAL-1.0-Combined-Work-Exception",
"Caldera",
"Caldera-no-preamble",
"Catharon",
"CATOSL-1.1",
"CC-BY-1.0",
"CC-BY-2.0",
"CC-BY-2.5",
"CC-BY-2.5-AU",
"CC-BY-3.0",
"CC-BY-3.0-AT",
"CC-BY-3.0-AU",
"CC-BY-3.0-DE",
"CC-BY-3.0-IGO",
"CC-BY-3.0-NL",
"CC-BY-3.0-US",
"CC-BY-4.0",
"CC-BY-NC-1.0",
"CC-BY-NC-2.0",
"CC-BY-NC-2.5",
"CC-BY-NC-3.0",
"CC-BY-NC-3.0-DE",
"CC-BY-NC-4.0",
"CC-BY-NC-ND-1.0",
"CC-BY-NC-ND-2.0",
"CC-BY-NC-ND-2.5",
"CC-BY-NC-ND-3.0",
"CC-BY-NC-ND-3.0-DE",
"CC-BY-NC-ND-3.0-IGO",
"CC-BY-NC-ND-4.0",
"CC-BY-NC-SA-1.0",
"CC-BY-NC-SA-2.0",
"CC-BY-NC-SA-2.0-DE",
"CC-BY-NC-SA-2.0-FR",
"CC-BY-NC-SA-2.0-UK",
"CC-BY-NC-SA-2.5",
"CC-BY-NC-SA-3.0",
"CC-BY-NC-SA-3.0-DE",
"CC-BY-NC-SA-3.0-IGO",
"CC-BY-NC-SA-4.0",
"CC-BY-ND-1.0",
"CC-BY-ND-2.0",
"CC-BY-ND-2.5",
"CC-BY-ND-3.0",
"CC-BY-ND-3.0-DE",
"CC-BY-ND-4.0",
"CC-BY-SA-1.0",
"CC-BY-SA-2.0",
"CC-BY-SA-2.0-UK",
"CC-BY-SA-2.1-JP",
"CC-BY-SA-2.5",
"CC-BY-SA-3.0",
"CC-BY-SA-3.0-AT",
"CC-BY-SA-3.0-DE",
"CC-BY-SA-3.0-IGO",
"CC-BY-SA-4.0",
"CC-PDDC",
"CC-PDM-1.0",
"CC-SA-1.0",
"CC0-1.0",
"CDDL-1.0",
"CDDL-1.1",
"CDL-1.0",
"CDLA-Permissive-1.0",
"CDLA-Permissive-2.0",
"CDLA-Sharing-1.0",
"CECILL-1.0",
"CECILL-1.1",
"CECILL-2.0",
"CECILL-2.1",
"CECILL-B",
"CECILL-C",
"CERN-OHL-1.1",
"CERN-OHL-1.2",
"CERN-OHL-P-2.0",
"CERN-OHL-S-2.0",
"CERN-OHL-W-2.0",
"CFITSIO",
"check-cvs",
"checkmk",
"ClArtistic",
"Clips",
"CMU-Mach",
"CMU-Mach-nodoc",
"CNRI-Jython",
"CNRI-Python",
"CNRI-Python-GPL-Compatible",
"COIL-1.0",
"Community-Spec-1.0",
"Condor-1.1",
"copyleft-next-0.3.0",
"copyleft-next-0.3.1",
"Cornell-Lossless-JPEG",
"CPAL-1.0",
"CPL-1.0",
"CPOL-1.02",
"Cronyx",
"Crossword",
"CryptoSwift",
"CrystalStacker",
"CUA-OPL-1.0",
"Cube",
"curl",
"cve-tou",
"D-FSL-1.0",
"DEC-3-Clause",
"diffmark",
"DL-DE-BY-2.0",
"DL-DE-ZERO-2.0",
"DOC",
"DocBook-DTD",
"DocBook-Schema",
"DocBook-Stylesheet",
"DocBook-XML",
"Dotseqn",
"DRL-1.0",
"DRL-1.1",
"DSDP",
"dtoa",
"dvipdfm",
"ECL-1.0",
"ECL-2.0",
"EFL-1.0",
"EFL-2.0",
"eGenix",
"Elastic-2.0",
"Entessa",
"EPICS",
"EPL-1.0",
"EPL-2.0",
"ErlPL-1.1",
"etalab-2.0",
"EUDatagrid",
"EUPL-1.0",
"EUPL-1.1",
"EUPL-1.2",
"Eurosym",
"Fair",
"FBM",
"FDK-AAC",
"Ferguson-Twofish",
"Frameworx-1.0",
"FreeBSD-DOC",
"FreeImage",
"FSFAP",
"FSFAP-no-warranty-disclaimer",
"FSFUL",
"FSFULLR",
"FSFULLRSD",
"FSFULLRWD",
"FSL-1.1-ALv2",
"FSL-1.1-MIT",
"FTL",
"Furuseth",
"fwlw",
"Game-Programming-Gems",
"GCR-docs",
"GD",
"generic-xts",
"GFDL-1.1-invariants-only",
"GFDL-1.1-invariants-or-later",
"GFDL-1.1-no-invariants-only",
"GFDL-1.1-no-invariants-or-later",
"GFDL-1.1-only",
"GFDL-1.1-or-later",
"GFDL-1.2-invariants-only",
"GFDL-1.2-invariants-or-later",
"GFDL-1.2-no-invariants-only",
"GFDL-1.2-no-invariants-or-later",
"GFDL-1.2-only",
"GFDL-1.2-or-later",
"GFDL-1.3-invariants-only",
"GFDL-1.3-invariants-or-later",
"GFDL-1.3-no-invariants-only",
"GFDL-1.3-no-invariants-or-later",
"GFDL-1.3-only",
"GFDL-1.3-or-later",
"Giftware",
"GL2PS",
"Glide",
"Glulxe",
"GLWTPL",
"gnuplot",
"GPL-1.0-only",
"GPL-1.0-or-later",
"GPL-2.0-only",
"GPL-2.0-or-later",
"GPL-3.0-only",
"GPL-3.0-or-later",
"Graphics-Gems",
"gSOAP-1.3b",
"gtkbook",
"Gutmann",
"HaskellReport",
"HDF5",
"hdparm",
"HIDAPI",
"Hippocratic-2.1",
"HP-1986",
"HP-1989",
"HPND",
"HPND-DEC",
"HPND-doc",
"HPND-doc-sell",
"HPND-export-US",
"HPND-export-US-acknowledgement",
"HPND-export-US-modify",
"HPND-export2-US",
"HPND-Fenneberg-Livingston",
"HPND-INRIA-IMAG",
"HPND-Intel",
"HPND-Kevlin-Henney",
"HPND-Markus-Kuhn",
"HPND-merchantability-variant",
"HPND-MIT-disclaimer",
"HPND-Netrek",
"HPND-Pbmplus",
"HPND-sell-MIT-disclaimer-xserver",
"HPND-sell-regexpr",
"HPND-sell-variant",
"HPND-sell-variant-MIT-disclaimer",
"HPND-sell-variant-MIT-disclaimer-rev",
"HPND-UC",
"HPND-UC-export-US",
"HTMLTIDY",
"IBM-pibs",
"ICU",
"IEC-Code-Components-EULA",
"IJG",
"IJG-short",
"ImageMagick",
"iMatix",
"Imlib2",
"Info-ZIP",
"Inner-Net-2.0",
"InnoSetup",
"Intel",
"Intel-ACPI",
"Interbase-1.0",
"IPA",
"IPL-1.0",
"ISC",
"ISC-Veillard",
"Jam",
"JasPer-2.0",
"jove",
"JPL-image",
"JPNIC",
"JSON",
"Kastrup",
"Kazlib",
"Knuth-CTAN",
"LAL-1.2",
"LAL-1.3",
"Latex2e",
"Latex2e-translated-notice",
"Leptonica",
"LGPL-2.0-only",
"LGPL-2.0-or-later",
"LGPL-2.1-only",
"LGPL-2.1-or-later",
"LGPL-3.0-only",
"LGPL-3.0-or-later",
"LGPLLR",
"Libpng",
"libpng-1.6.35",
"libpng-2.0",
"libselinux-1.0",
"libtiff",
"libutil-David-Nugent",
"LiLiQ-P-1.1",
"LiLiQ-R-1.1",
"LiLiQ-Rplus-1.1",
"Linux-man-pages-1-para",
"Linux-man-pages-copyleft",
"Linux-man-pages-copyleft-2-para",
"Linux-man-pages-copyleft-var",
"Linux-OpenIB",
"LOOP",
"LPD-document",
"LPL-1.0",
"LPL-1.02",
"LPPL-1.0",
"LPPL-1.1",
"LPPL-1.2",
"LPPL-1.3a",
"LPPL-1.3c",
"lsof",
"Lucida-Bitmap-Fonts",
"LZMA-SDK-9.11-to-9.20",
"LZMA-SDK-9.22",
"Mackerras-3-Clause",
"Mackerras-3-Clause-acknowledgment",
"magaz",
"mailprio",
"MakeIndex",
"man2html",
"Martin-Birgmeier",
"McPhee-slideshow",
"metamail",
"Minpack",
"MIPS",
"MirOS",
"MIT",
"MIT-0",
"MIT-advertising",
"MIT-Click",
"MIT-CMU",
"MIT-enna",
"MIT-feh",
"MIT-Festival",
"MIT-Khronos-old",
"MIT-Modern-Variant",
"MIT-open-group",
"MIT-testregex",
"MIT-Wu",
"MITNFA",
"MMIXware",
"Motosoto",
"MPEG-SSG",
"mpi-permissive",
"mpich2",
"MPL-1.0",
"MPL-1.1",
"MPL-2.0",
"MPL-2.0-no-copyleft-exception",
"mplus",
"MS-LPL",
"MS-PL",
"MS-RL",
"MTLL",
"MulanPSL-1.0",
"MulanPSL-2.0",
"Multics",
"Mup",
"NAIST-2003",
"NASA-1.3",
"Naumen",
"NBPL-1.0",
"NCBI-PD",
"NCGL-UK-2.0",
"NCL",
"NCSA",
"NetCDF",
"Newsletr",
"NGPL",
"ngrep",
"NICTA-1.0",
"NIST-PD",
"NIST-PD-fallback",
"NIST-Software",
"NLOD-1.0",
"NLOD-2.0",
"NLPL",
"Nokia",
"NOSL",
"Noweb",
"NPL-1.0",
"NPL-1.1",
"NPOSL-3.0",
"NRL",
"NTIA-PD",
"NTP",
"NTP-0",
"O-UDA-1.0",
"OAR",
"OCCT-PL",
"OCLC-2.0",
"ODbL-1.0",
"ODC-By-1.0",
"OFFIS",
"OFL-1.0",
"OFL-1.0-no-RFN",
"OFL-1.0-RFN",
"OFL-1.1",
"OFL-1.1-no-RFN",
"OFL-1.1-RFN",
"OGC-1.0",
"OGDL-Taiwan-1.0",
"OGL-Canada-2.0",
"OGL-UK-1.0",
"OGL-UK-2.0",
"OGL-UK-3.0",
"OGTSL",
"OLDAP-1.1",
"OLDAP-1.2",
"OLDAP-1.3",
"OLDAP-1.4",
"OLDAP-2.0",
"OLDAP-2.0.1",
"OLDAP-2.1",
"OLDAP-2.2",
"OLDAP-2.2.1",
"OLDAP-2.2.2",
"OLDAP-2.3",
"OLDAP-2.4",
"OLDAP-2.5",
"OLDAP-2.6",
"OLDAP-2.7",
"OLDAP-2.8",
"OLFL-1.3",
"OML",
"OpenPBS-2.3",
"OpenSSL",
"OpenSSL-standalone",
"OpenVision",
"OPL-1.0",
"OPL-UK-3.0",
"OPUBL-1.0",
"OSET-PL-2.1",
"OSL-1.0",
"OSL-1.1",
"OSL-2.0",
"OSL-2.1",
"OSL-3.0",
"PADL",
"Parity-6.0.0",
"Parity-7.0.0",
"PDDL-1.0",
"PHP-3.0",
"PHP-3.01",
"Pixar",
"pkgconf",
"Plexus",
"pnmstitch",
"PolyForm-Noncommercial-1.0.0",
"PolyForm-Small-Business-1.0.0",
"PostgreSQL",
"PPL",
"PSF-2.0",
"psfrag",
"psutils",
"Python-2.0",
"Python-2.0.1",
"python-ldap",
"Qhull",
"QPL-1.0",
"QPL-1.0-INRIA-2004",
"radvd",
"Rdisc",
"RHeCos-1.1",
"RPL-1.1",
"RPL-1.5",
"RPSL-1.0",
"RSA-MD",
"RSCPL",
"Ruby",
"Ruby-pty",
"SAX-PD",
"SAX-PD-2.0",
"Saxpath",
"SCEA",
"SchemeReport",
"Sendmail",
"Sendmail-8.23",
"Sendmail-Open-Source-1.1",
"SGI-B-1.0",
"SGI-B-1.1",
"SGI-B-2.0",
"SGI-OpenGL",
"SGP4",
"SHL-0.5",
"SHL-0.51",
"SimPL-2.0",
"SISSL",
"SISSL-1.2",
"SL",
"Sleepycat",
"SMAIL-GPL",
"SMLNJ",
"SMPPL",
"SNIA",
"snprintf",
"SOFA",
"softSurfer",
"Soundex",
"Spencer-86",
"Spencer-94",
"Spencer-99",
"SPL-1.0",
"ssh-keyscan",
"SSH-OpenSSH",
"SSH-short",
"SSLeay-standalone",
"SSPL-1.0",
"SugarCRM-1.1.3",
"SUL-1.0",
"Sun-PPP",
"Sun-PPP-2000",
"SunPro",
"SWL",
"swrule",
"Symlinks",
"TAPR-OHL-1.0",
"TCL",
"TCP-wrappers",
"TermReadKey",
"TGPPL-1.0",
"ThirdEye",
"threeparttable",
"TMate",
"TORQUE-1.1",
"TOSL",
"TPDL",
"TPL-1.0",
"TrustedQSL",
"TTWL",
"TTYP0",
"TU-Berlin-1.0",
"TU-Berlin-2.0",
"Ubuntu-font-1.0",
"UCAR",
"UCL-1.0",
"ulem",
"UMich-Merit",
"Unicode-3.0",
"Unicode-DFS-2015",
"Unicode-DFS-2016",
"Unicode-TOU",
"UnixCrypt",
"Unlicense",
"Unlicense-libtelnet",
"Unlicense-libwhirlpool",
"UPL-1.0",
"URT-RLE",
"Vim",
"VOSTROM",
"VSL-1.0",
"W3C",
"W3C-19980720",
"W3C-20150513",
"w3m",
"Watcom-1.0",
"Widget-Workshop",
"Wsuipa",
"WTFPL",
"wwl",
"X11",
"X11-distribute-modifications-variant",
"X11-swapped",
"Xdebug-1.03",
"Xerox",
"Xfig",
"XFree86-1.1",
"xinetd",
"xkeyboard-config-Zinoviev",
"xlock",
"Xnet",
"xpp",
"XSkat",
"xzoom",
"YPL-1.0",
"YPL-1.1",
"Zed",
"Zeeff",
"Zend-2.0",
"Zimbra-1.3",
"Zimbra-1.4",
"Zlib",
"zlib-acknowledgement",
"ZPL-1.1",
"ZPL-2.0",
"ZPL-2.1"
],
"title": "LicenseId",
"type": "string"
},
{
"enum": [
"AGPL-1.0",
"AGPL-3.0",
"BSD-2-Clause-FreeBSD",
"BSD-2-Clause-NetBSD",
"bzip2-1.0.5",
"eCos-2.0",
"GFDL-1.1",
"GFDL-1.2",
"GFDL-1.3",
"GPL-1.0",
"GPL-1.0+",
"GPL-2.0",
"GPL-2.0+",
"GPL-2.0-with-autoconf-exception",
"GPL-2.0-with-bison-exception",
"GPL-2.0-with-classpath-exception",
"GPL-2.0-with-font-exception",
"GPL-2.0-with-GCC-exception",
"GPL-3.0",
"GPL-3.0+",
"GPL-3.0-with-autoconf-exception",
"GPL-3.0-with-GCC-exception",
"LGPL-2.0",
"LGPL-2.0+",
"LGPL-2.1",
"LGPL-2.1+",
"LGPL-3.0",
"LGPL-3.0+",
"Net-SNMP",
"Nunit",
"StandardML-NJ",
"wxWindows"
],
"title": "DeprecatedLicenseId",
"type": "string"
},
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "A [SPDX license identifier](https://spdx.org/licenses/) or a custom license file.",
"examples": [
"CC0-1.0",
"MIT",
"BSD-2-Clause"
],
"title": "License"
},
"git_repo": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A URL to the Git repository where the resource is being developed.",
"examples": [
"https://github.com/bioimage-io/spec-bioimage-io/tree/main/example_descriptions/models/unet2d_nuclei_broad"
],
"title": "Git Repo"
},
"icon": {
"anyOf": [
{
"maxLength": 2,
"minLength": 1,
"type": "string"
},
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "An icon for illustration, e.g. on bioimage.io",
"title": "Icon"
},
"links": {
"description": "IDs of other bioimage.io resources",
"examples": [
[
"ilastik/ilastik",
"deepimagej/deepimagej",
"zero/notebook_u-net_3d_zerocostdl4mic"
]
],
"items": {
"type": "string"
},
"title": "Links",
"type": "array"
},
"uploader": {
"anyOf": [
{
"$ref": "#/$defs/Uploader"
},
{
"type": "null"
}
],
"default": null,
"description": "The person who uploaded the model (e.g. to bioimage.io)"
},
"maintainers": {
"description": "Maintainers of this resource.\nIf not specified, `authors` are maintainers and at least some of them has to specify their `github_user` name",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Maintainer"
},
"title": "Maintainers",
"type": "array"
},
"tags": {
"description": "Associated tags",
"examples": [
[
"unet2d",
"pytorch",
"nucleus",
"segmentation",
"dsb2018"
]
],
"items": {
"type": "string"
},
"title": "Tags",
"type": "array"
},
"version": {
"anyOf": [
{
"$ref": "#/$defs/Version"
},
{
"type": "null"
}
],
"default": null,
"description": "The version of the resource following SemVer 2.0."
},
"version_comment": {
"anyOf": [
{
"maxLength": 512,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A comment on the version of the resource.",
"title": "Version Comment"
},
"format_version": {
"const": "0.3.4",
"description": "The **format** version of this resource specification",
"title": "Format Version",
"type": "string"
},
"badges": {
"description": "badges associated with this resource",
"items": {
"$ref": "#/$defs/BadgeDescr"
},
"title": "Badges",
"type": "array"
},
"config": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Config",
"description": "A field for custom configuration that can contain any keys not present in the RDF spec.\nThis means you should not store, for example, a GitHub repo URL in `config` since there is a `git_repo` field.\nKeys in `config` may be very specific to a tool or consumer software. To avoid conflicting definitions,\nit is recommended to wrap added configuration into a sub-field named with the specific domain or tool name,\nfor example:\n```yaml\nconfig:\n giraffe_neckometer: # here is the domain name\n length: 3837283\n address:\n home: zoo\n imagej: # config specific to ImageJ\n macro_dir: path/to/macro/file\n```\nIf possible, please use [`snake_case`](https://en.wikipedia.org/wiki/Snake_case) for keys in `config`.\nYou may want to list linked files additionally under `attachments` to include them when packaging a resource.\n(Packaging a resource means downloading/copying important linked files and creating a ZIP archive that contains\nan altered rdf.yaml file with local references to the downloaded files.)"
},
"type": {
"const": "dataset",
"title": "Type",
"type": "string"
},
"id": {
"anyOf": [
{
"minLength": 1,
"title": "DatasetId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "bioimage.io-wide unique resource identifier\nassigned by bioimage.io; version **un**specific.",
"title": "Id"
},
"parent": {
"anyOf": [
{
"minLength": 1,
"title": "DatasetId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The description from which this one is derived",
"title": "Parent"
},
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "\"URL to the source of the dataset.",
"title": "Source"
}
},
"required": [
"name",
"format_version",
"type"
],
"title": "dataset 0.3.4",
"type": "object"
},
"bioimageio__spec__generic__v0_2__Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_2.Author",
"type": "object"
},
"bioimageio__spec__generic__v0_2__CiteEntry": {
"additionalProperties": false,
"properties": {
"text": {
"description": "free text description",
"title": "Text",
"type": "string"
},
"doi": {
"anyOf": [
{
"description": "A digital object identifier, see https://www.doi.org/",
"pattern": "^10\\.[0-9]{4}.+$",
"title": "Doi",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A digital object identifier (DOI) is the prefered citation reference.\nSee https://www.doi.org/ for details. (alternatively specify `url`)",
"title": "Doi"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "URL to cite (preferably specify a `doi` instead)",
"title": "Url"
}
},
"required": [
"text"
],
"title": "generic.v0_2.CiteEntry",
"type": "object"
},
"bioimageio__spec__generic__v0_2__Maintainer": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"github_user": {
"title": "Github User",
"type": "string"
}
},
"required": [
"github_user"
],
"title": "generic.v0_2.Maintainer",
"type": "object"
},
"bioimageio__spec__generic__v0_3__Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"bioimageio__spec__generic__v0_3__BioimageioConfig": {
"additionalProperties": true,
"description": "bioimage.io internal metadata.",
"properties": {},
"title": "generic.v0_3.BioimageioConfig",
"type": "object"
},
"bioimageio__spec__generic__v0_3__CiteEntry": {
"additionalProperties": false,
"description": "A citation that should be referenced in work using this resource.",
"properties": {
"text": {
"description": "free text description",
"title": "Text",
"type": "string"
},
"doi": {
"anyOf": [
{
"description": "A digital object identifier, see https://www.doi.org/",
"pattern": "^10\\.[0-9]{4}.+$",
"title": "Doi",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A digital object identifier (DOI) is the prefered citation reference.\nSee https://www.doi.org/ for details.\nNote:\n Either **doi** or **url** have to be specified.",
"title": "Doi"
},
"url": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "URL to cite (preferably specify a **doi** instead/also).\nNote:\n Either **doi** or **url** have to be specified.",
"title": "Url"
}
},
"required": [
"text"
],
"title": "generic.v0_3.CiteEntry",
"type": "object"
},
"bioimageio__spec__generic__v0_3__Config": {
"additionalProperties": true,
"description": "A place to store additional metadata (often tool specific).\n\nSuch additional metadata is typically set programmatically by the respective tool\nor by people with specific insights into the tool.\nIf you want to store additional metadata that does not match any of the other\nfields, think of a key unlikely to collide with anyone elses use-case/tool and save\nit here.\n\nPlease consider creating [an issue in the bioimageio.spec repository](https://github.com/bioimage-io/spec-bioimage-io/issues/new?template=Blank+issue)\nif you are not sure if an existing field could cover your use case\nor if you think such a field should exist.",
"properties": {
"bioimageio": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__BioimageioConfig"
}
},
"title": "generic.v0_3.Config",
"type": "object"
},
"bioimageio__spec__generic__v0_3__Maintainer": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"github_user": {
"title": "Github User",
"type": "string"
}
},
"required": [
"github_user"
],
"title": "generic.v0_3.Maintainer",
"type": "object"
},
"bioimageio__spec__model__v0_5__BioimageioConfig": {
"additionalProperties": true,
"properties": {
"reproducibility_tolerance": {
"description": "Tolerances to allow when reproducing the model's test outputs\nfrom the model's test inputs.\nOnly the first entry matching tensor id and weights format is considered.\nFor defaults see [`ContinuousReproducibilityTolerance`][ContinuousReproducibilityTolerance]/[`DiscreteReproducibilityTolerance`][DiscreteReproducibilityTolerance]",
"items": {
"anyOf": [
{
"$ref": "#/$defs/ReproducibilityTolerance"
},
{
"$ref": "#/$defs/ContinuousReproducibilityTolerance"
},
{
"$ref": "#/$defs/DiscreteReproducibilityTolerance"
}
]
},
"title": "Reproducibility Tolerance",
"type": "array"
},
"funded_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Funding agency, grant number if applicable",
"title": "Funded By"
},
"architecture_type": {
"anyOf": [
{
"maxLength": 32,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Model architecture type, e.g., 3D U-Net, ResNet, transformer",
"title": "Architecture Type"
},
"architecture_description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Text description of model architecture.",
"title": "Architecture Description"
},
"modality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Input modality, e.g., fluorescence microscopy, electron microscopy",
"title": "Modality"
},
"target_structure": {
"description": "Biological structure(s) the model is designed to analyze, e.g., nuclei, mitochondria, cells",
"items": {
"type": "string"
},
"title": "Target Structure",
"type": "array"
},
"task": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Bioimage-specific task type, e.g., segmentation, classification, detection, denoising",
"title": "Task"
},
"new_version": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A new version of this model exists with a different model id.",
"title": "New Version"
},
"out_of_scope_use": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Describe how the model may be misused in bioimage analysis contexts and what users should **not** do with the model.",
"title": "Out Of Scope Use"
},
"bias_risks_limitations": {
"$ref": "#/$defs/BiasRisksLimitations",
"description": "Description of known bias, risks, and technical limitations for in-scope model use."
},
"model_parameter_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total number of model parameters.",
"title": "Model Parameter Count"
},
"training": {
"$ref": "#/$defs/TrainingDetails",
"description": "Details on how the model was trained."
},
"inference_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Average inference time per image/tile. Specify hardware and image size. Multiple examples can be given.",
"title": "Inference Time"
},
"memory_requirements_inference": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU memory needed for inference. Multiple examples with different image size can be given.",
"title": "Memory Requirements Inference"
},
"memory_requirements_training": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "GPU memory needed for training. Multiple examples with different image/batch sizes can be given.",
"title": "Memory Requirements Training"
},
"evaluations": {
"description": "Quantitative model evaluations.\n\nNote:\n At the moment we recommend to include only a single test dataset\n (with evaluation factors that may mark subsets of the dataset)\n to avoid confusion and make the presentation of results cleaner.",
"items": {
"$ref": "#/$defs/Evaluation"
},
"title": "Evaluations",
"type": "array"
},
"environmental_impact": {
"$ref": "#/$defs/EnvironmentalImpact",
"description": "Environmental considerations for model training and deployment"
}
},
"title": "model.v0_5.BioimageioConfig",
"type": "object"
},
"bioimageio__spec__model__v0_5__Config": {
"additionalProperties": true,
"properties": {
"bioimageio": {
"$ref": "#/$defs/bioimageio__spec__model__v0_5__BioimageioConfig"
},
"stardist": {
"$ref": "#/$defs/YamlValue",
"default": null
}
},
"title": "model.v0_5.Config",
"type": "object"
}
},
"additionalProperties": false,
"description": "Specification of the fields used in a bioimage.io-compliant RDF to describe AI models with pretrained weights.\nThese fields are typically stored in a YAML file which we call a model resource description file (model RDF).",
"properties": {
"name": {
"description": "A human-readable name of this model.\nIt should be no longer than 64 characters\nand may only contain letter, number, underscore, minus, parentheses and spaces.\nWe recommend to chose a name that refers to the model's task and image modality.",
"maxLength": 128,
"minLength": 5,
"title": "Name",
"type": "string"
},
"description": {
"default": "",
"description": "A string containing a brief description.",
"maxLength": 1024,
"title": "Description",
"type": "string"
},
"covers": {
"description": "Cover images. Please use an image smaller than 500KB and an aspect ratio width to height of 2:1 or 1:1.\nThe supported image formats are: ('.gif', '.jpeg', '.jpg', '.png', '.svg')",
"examples": [
[
{
"source": "cover.png"
}
]
],
"items": {
"$ref": "#/$defs/FileDescr"
},
"title": "Covers",
"type": "array"
},
"documentation": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "README.md"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Additional model documentation.\nThe recommended documentation source file name is `README.md`. An `.md` suffix is mandatory.\nThe documentation should include a '#[#] Validation' (sub)section\nwith details on how to quantitatively validate the model on unseen data."
},
"id_emoji": {
"anyOf": [
{
"examples": [
"\ud83e\udd88",
"\ud83e\udda5"
],
"maxLength": 2,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "UTF-8 emoji for display alongside the `id`.",
"title": "Id Emoji"
},
"authors": {
"description": "The authors are the creators of the model RDF and the primary points of contact.",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"title": "Authors",
"type": "array"
},
"attachments": {
"description": "file attachments",
"items": {
"$ref": "#/$defs/FileDescr"
},
"title": "Attachments",
"type": "array"
},
"cite": {
"description": "citations",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__CiteEntry"
},
"title": "Cite",
"type": "array"
},
"license": {
"anyOf": [
{
"enum": [
"0BSD",
"3D-Slicer-1.0",
"AAL",
"Abstyles",
"AdaCore-doc",
"Adobe-2006",
"Adobe-Display-PostScript",
"Adobe-Glyph",
"Adobe-Utopia",
"ADSL",
"AFL-1.1",
"AFL-1.2",
"AFL-2.0",
"AFL-2.1",
"AFL-3.0",
"Afmparse",
"AGPL-1.0-only",
"AGPL-1.0-or-later",
"AGPL-3.0-only",
"AGPL-3.0-or-later",
"Aladdin",
"AMD-newlib",
"AMDPLPA",
"AML",
"AML-glslang",
"AMPAS",
"ANTLR-PD",
"ANTLR-PD-fallback",
"any-OSI",
"any-OSI-perl-modules",
"Apache-1.0",
"Apache-1.1",
"Apache-2.0",
"APAFML",
"APL-1.0",
"App-s2p",
"APSL-1.0",
"APSL-1.1",
"APSL-1.2",
"APSL-2.0",
"Arphic-1999",
"Artistic-1.0",
"Artistic-1.0-cl8",
"Artistic-1.0-Perl",
"Artistic-2.0",
"Artistic-dist",
"Aspell-RU",
"ASWF-Digital-Assets-1.0",
"ASWF-Digital-Assets-1.1",
"Baekmuk",
"Bahyph",
"Barr",
"bcrypt-Solar-Designer",
"Beerware",
"Bitstream-Charter",
"Bitstream-Vera",
"BitTorrent-1.0",
"BitTorrent-1.1",
"blessing",
"BlueOak-1.0.0",
"Boehm-GC",
"Boehm-GC-without-fee",
"Borceux",
"Brian-Gladman-2-Clause",
"Brian-Gladman-3-Clause",
"BSD-1-Clause",
"BSD-2-Clause",
"BSD-2-Clause-Darwin",
"BSD-2-Clause-first-lines",
"BSD-2-Clause-Patent",
"BSD-2-Clause-pkgconf-disclaimer",
"BSD-2-Clause-Views",
"BSD-3-Clause",
"BSD-3-Clause-acpica",
"BSD-3-Clause-Attribution",
"BSD-3-Clause-Clear",
"BSD-3-Clause-flex",
"BSD-3-Clause-HP",
"BSD-3-Clause-LBNL",
"BSD-3-Clause-Modification",
"BSD-3-Clause-No-Military-License",
"BSD-3-Clause-No-Nuclear-License",
"BSD-3-Clause-No-Nuclear-License-2014",
"BSD-3-Clause-No-Nuclear-Warranty",
"BSD-3-Clause-Open-MPI",
"BSD-3-Clause-Sun",
"BSD-4-Clause",
"BSD-4-Clause-Shortened",
"BSD-4-Clause-UC",
"BSD-4.3RENO",
"BSD-4.3TAHOE",
"BSD-Advertising-Acknowledgement",
"BSD-Attribution-HPND-disclaimer",
"BSD-Inferno-Nettverk",
"BSD-Protection",
"BSD-Source-beginning-file",
"BSD-Source-Code",
"BSD-Systemics",
"BSD-Systemics-W3Works",
"BSL-1.0",
"BUSL-1.1",
"bzip2-1.0.6",
"C-UDA-1.0",
"CAL-1.0",
"CAL-1.0-Combined-Work-Exception",
"Caldera",
"Caldera-no-preamble",
"Catharon",
"CATOSL-1.1",
"CC-BY-1.0",
"CC-BY-2.0",
"CC-BY-2.5",
"CC-BY-2.5-AU",
"CC-BY-3.0",
"CC-BY-3.0-AT",
"CC-BY-3.0-AU",
"CC-BY-3.0-DE",
"CC-BY-3.0-IGO",
"CC-BY-3.0-NL",
"CC-BY-3.0-US",
"CC-BY-4.0",
"CC-BY-NC-1.0",
"CC-BY-NC-2.0",
"CC-BY-NC-2.5",
"CC-BY-NC-3.0",
"CC-BY-NC-3.0-DE",
"CC-BY-NC-4.0",
"CC-BY-NC-ND-1.0",
"CC-BY-NC-ND-2.0",
"CC-BY-NC-ND-2.5",
"CC-BY-NC-ND-3.0",
"CC-BY-NC-ND-3.0-DE",
"CC-BY-NC-ND-3.0-IGO",
"CC-BY-NC-ND-4.0",
"CC-BY-NC-SA-1.0",
"CC-BY-NC-SA-2.0",
"CC-BY-NC-SA-2.0-DE",
"CC-BY-NC-SA-2.0-FR",
"CC-BY-NC-SA-2.0-UK",
"CC-BY-NC-SA-2.5",
"CC-BY-NC-SA-3.0",
"CC-BY-NC-SA-3.0-DE",
"CC-BY-NC-SA-3.0-IGO",
"CC-BY-NC-SA-4.0",
"CC-BY-ND-1.0",
"CC-BY-ND-2.0",
"CC-BY-ND-2.5",
"CC-BY-ND-3.0",
"CC-BY-ND-3.0-DE",
"CC-BY-ND-4.0",
"CC-BY-SA-1.0",
"CC-BY-SA-2.0",
"CC-BY-SA-2.0-UK",
"CC-BY-SA-2.1-JP",
"CC-BY-SA-2.5",
"CC-BY-SA-3.0",
"CC-BY-SA-3.0-AT",
"CC-BY-SA-3.0-DE",
"CC-BY-SA-3.0-IGO",
"CC-BY-SA-4.0",
"CC-PDDC",
"CC-PDM-1.0",
"CC-SA-1.0",
"CC0-1.0",
"CDDL-1.0",
"CDDL-1.1",
"CDL-1.0",
"CDLA-Permissive-1.0",
"CDLA-Permissive-2.0",
"CDLA-Sharing-1.0",
"CECILL-1.0",
"CECILL-1.1",
"CECILL-2.0",
"CECILL-2.1",
"CECILL-B",
"CECILL-C",
"CERN-OHL-1.1",
"CERN-OHL-1.2",
"CERN-OHL-P-2.0",
"CERN-OHL-S-2.0",
"CERN-OHL-W-2.0",
"CFITSIO",
"check-cvs",
"checkmk",
"ClArtistic",
"Clips",
"CMU-Mach",
"CMU-Mach-nodoc",
"CNRI-Jython",
"CNRI-Python",
"CNRI-Python-GPL-Compatible",
"COIL-1.0",
"Community-Spec-1.0",
"Condor-1.1",
"copyleft-next-0.3.0",
"copyleft-next-0.3.1",
"Cornell-Lossless-JPEG",
"CPAL-1.0",
"CPL-1.0",
"CPOL-1.02",
"Cronyx",
"Crossword",
"CryptoSwift",
"CrystalStacker",
"CUA-OPL-1.0",
"Cube",
"curl",
"cve-tou",
"D-FSL-1.0",
"DEC-3-Clause",
"diffmark",
"DL-DE-BY-2.0",
"DL-DE-ZERO-2.0",
"DOC",
"DocBook-DTD",
"DocBook-Schema",
"DocBook-Stylesheet",
"DocBook-XML",
"Dotseqn",
"DRL-1.0",
"DRL-1.1",
"DSDP",
"dtoa",
"dvipdfm",
"ECL-1.0",
"ECL-2.0",
"EFL-1.0",
"EFL-2.0",
"eGenix",
"Elastic-2.0",
"Entessa",
"EPICS",
"EPL-1.0",
"EPL-2.0",
"ErlPL-1.1",
"etalab-2.0",
"EUDatagrid",
"EUPL-1.0",
"EUPL-1.1",
"EUPL-1.2",
"Eurosym",
"Fair",
"FBM",
"FDK-AAC",
"Ferguson-Twofish",
"Frameworx-1.0",
"FreeBSD-DOC",
"FreeImage",
"FSFAP",
"FSFAP-no-warranty-disclaimer",
"FSFUL",
"FSFULLR",
"FSFULLRSD",
"FSFULLRWD",
"FSL-1.1-ALv2",
"FSL-1.1-MIT",
"FTL",
"Furuseth",
"fwlw",
"Game-Programming-Gems",
"GCR-docs",
"GD",
"generic-xts",
"GFDL-1.1-invariants-only",
"GFDL-1.1-invariants-or-later",
"GFDL-1.1-no-invariants-only",
"GFDL-1.1-no-invariants-or-later",
"GFDL-1.1-only",
"GFDL-1.1-or-later",
"GFDL-1.2-invariants-only",
"GFDL-1.2-invariants-or-later",
"GFDL-1.2-no-invariants-only",
"GFDL-1.2-no-invariants-or-later",
"GFDL-1.2-only",
"GFDL-1.2-or-later",
"GFDL-1.3-invariants-only",
"GFDL-1.3-invariants-or-later",
"GFDL-1.3-no-invariants-only",
"GFDL-1.3-no-invariants-or-later",
"GFDL-1.3-only",
"GFDL-1.3-or-later",
"Giftware",
"GL2PS",
"Glide",
"Glulxe",
"GLWTPL",
"gnuplot",
"GPL-1.0-only",
"GPL-1.0-or-later",
"GPL-2.0-only",
"GPL-2.0-or-later",
"GPL-3.0-only",
"GPL-3.0-or-later",
"Graphics-Gems",
"gSOAP-1.3b",
"gtkbook",
"Gutmann",
"HaskellReport",
"HDF5",
"hdparm",
"HIDAPI",
"Hippocratic-2.1",
"HP-1986",
"HP-1989",
"HPND",
"HPND-DEC",
"HPND-doc",
"HPND-doc-sell",
"HPND-export-US",
"HPND-export-US-acknowledgement",
"HPND-export-US-modify",
"HPND-export2-US",
"HPND-Fenneberg-Livingston",
"HPND-INRIA-IMAG",
"HPND-Intel",
"HPND-Kevlin-Henney",
"HPND-Markus-Kuhn",
"HPND-merchantability-variant",
"HPND-MIT-disclaimer",
"HPND-Netrek",
"HPND-Pbmplus",
"HPND-sell-MIT-disclaimer-xserver",
"HPND-sell-regexpr",
"HPND-sell-variant",
"HPND-sell-variant-MIT-disclaimer",
"HPND-sell-variant-MIT-disclaimer-rev",
"HPND-UC",
"HPND-UC-export-US",
"HTMLTIDY",
"IBM-pibs",
"ICU",
"IEC-Code-Components-EULA",
"IJG",
"IJG-short",
"ImageMagick",
"iMatix",
"Imlib2",
"Info-ZIP",
"Inner-Net-2.0",
"InnoSetup",
"Intel",
"Intel-ACPI",
"Interbase-1.0",
"IPA",
"IPL-1.0",
"ISC",
"ISC-Veillard",
"Jam",
"JasPer-2.0",
"jove",
"JPL-image",
"JPNIC",
"JSON",
"Kastrup",
"Kazlib",
"Knuth-CTAN",
"LAL-1.2",
"LAL-1.3",
"Latex2e",
"Latex2e-translated-notice",
"Leptonica",
"LGPL-2.0-only",
"LGPL-2.0-or-later",
"LGPL-2.1-only",
"LGPL-2.1-or-later",
"LGPL-3.0-only",
"LGPL-3.0-or-later",
"LGPLLR",
"Libpng",
"libpng-1.6.35",
"libpng-2.0",
"libselinux-1.0",
"libtiff",
"libutil-David-Nugent",
"LiLiQ-P-1.1",
"LiLiQ-R-1.1",
"LiLiQ-Rplus-1.1",
"Linux-man-pages-1-para",
"Linux-man-pages-copyleft",
"Linux-man-pages-copyleft-2-para",
"Linux-man-pages-copyleft-var",
"Linux-OpenIB",
"LOOP",
"LPD-document",
"LPL-1.0",
"LPL-1.02",
"LPPL-1.0",
"LPPL-1.1",
"LPPL-1.2",
"LPPL-1.3a",
"LPPL-1.3c",
"lsof",
"Lucida-Bitmap-Fonts",
"LZMA-SDK-9.11-to-9.20",
"LZMA-SDK-9.22",
"Mackerras-3-Clause",
"Mackerras-3-Clause-acknowledgment",
"magaz",
"mailprio",
"MakeIndex",
"man2html",
"Martin-Birgmeier",
"McPhee-slideshow",
"metamail",
"Minpack",
"MIPS",
"MirOS",
"MIT",
"MIT-0",
"MIT-advertising",
"MIT-Click",
"MIT-CMU",
"MIT-enna",
"MIT-feh",
"MIT-Festival",
"MIT-Khronos-old",
"MIT-Modern-Variant",
"MIT-open-group",
"MIT-testregex",
"MIT-Wu",
"MITNFA",
"MMIXware",
"Motosoto",
"MPEG-SSG",
"mpi-permissive",
"mpich2",
"MPL-1.0",
"MPL-1.1",
"MPL-2.0",
"MPL-2.0-no-copyleft-exception",
"mplus",
"MS-LPL",
"MS-PL",
"MS-RL",
"MTLL",
"MulanPSL-1.0",
"MulanPSL-2.0",
"Multics",
"Mup",
"NAIST-2003",
"NASA-1.3",
"Naumen",
"NBPL-1.0",
"NCBI-PD",
"NCGL-UK-2.0",
"NCL",
"NCSA",
"NetCDF",
"Newsletr",
"NGPL",
"ngrep",
"NICTA-1.0",
"NIST-PD",
"NIST-PD-fallback",
"NIST-Software",
"NLOD-1.0",
"NLOD-2.0",
"NLPL",
"Nokia",
"NOSL",
"Noweb",
"NPL-1.0",
"NPL-1.1",
"NPOSL-3.0",
"NRL",
"NTIA-PD",
"NTP",
"NTP-0",
"O-UDA-1.0",
"OAR",
"OCCT-PL",
"OCLC-2.0",
"ODbL-1.0",
"ODC-By-1.0",
"OFFIS",
"OFL-1.0",
"OFL-1.0-no-RFN",
"OFL-1.0-RFN",
"OFL-1.1",
"OFL-1.1-no-RFN",
"OFL-1.1-RFN",
"OGC-1.0",
"OGDL-Taiwan-1.0",
"OGL-Canada-2.0",
"OGL-UK-1.0",
"OGL-UK-2.0",
"OGL-UK-3.0",
"OGTSL",
"OLDAP-1.1",
"OLDAP-1.2",
"OLDAP-1.3",
"OLDAP-1.4",
"OLDAP-2.0",
"OLDAP-2.0.1",
"OLDAP-2.1",
"OLDAP-2.2",
"OLDAP-2.2.1",
"OLDAP-2.2.2",
"OLDAP-2.3",
"OLDAP-2.4",
"OLDAP-2.5",
"OLDAP-2.6",
"OLDAP-2.7",
"OLDAP-2.8",
"OLFL-1.3",
"OML",
"OpenPBS-2.3",
"OpenSSL",
"OpenSSL-standalone",
"OpenVision",
"OPL-1.0",
"OPL-UK-3.0",
"OPUBL-1.0",
"OSET-PL-2.1",
"OSL-1.0",
"OSL-1.1",
"OSL-2.0",
"OSL-2.1",
"OSL-3.0",
"PADL",
"Parity-6.0.0",
"Parity-7.0.0",
"PDDL-1.0",
"PHP-3.0",
"PHP-3.01",
"Pixar",
"pkgconf",
"Plexus",
"pnmstitch",
"PolyForm-Noncommercial-1.0.0",
"PolyForm-Small-Business-1.0.0",
"PostgreSQL",
"PPL",
"PSF-2.0",
"psfrag",
"psutils",
"Python-2.0",
"Python-2.0.1",
"python-ldap",
"Qhull",
"QPL-1.0",
"QPL-1.0-INRIA-2004",
"radvd",
"Rdisc",
"RHeCos-1.1",
"RPL-1.1",
"RPL-1.5",
"RPSL-1.0",
"RSA-MD",
"RSCPL",
"Ruby",
"Ruby-pty",
"SAX-PD",
"SAX-PD-2.0",
"Saxpath",
"SCEA",
"SchemeReport",
"Sendmail",
"Sendmail-8.23",
"Sendmail-Open-Source-1.1",
"SGI-B-1.0",
"SGI-B-1.1",
"SGI-B-2.0",
"SGI-OpenGL",
"SGP4",
"SHL-0.5",
"SHL-0.51",
"SimPL-2.0",
"SISSL",
"SISSL-1.2",
"SL",
"Sleepycat",
"SMAIL-GPL",
"SMLNJ",
"SMPPL",
"SNIA",
"snprintf",
"SOFA",
"softSurfer",
"Soundex",
"Spencer-86",
"Spencer-94",
"Spencer-99",
"SPL-1.0",
"ssh-keyscan",
"SSH-OpenSSH",
"SSH-short",
"SSLeay-standalone",
"SSPL-1.0",
"SugarCRM-1.1.3",
"SUL-1.0",
"Sun-PPP",
"Sun-PPP-2000",
"SunPro",
"SWL",
"swrule",
"Symlinks",
"TAPR-OHL-1.0",
"TCL",
"TCP-wrappers",
"TermReadKey",
"TGPPL-1.0",
"ThirdEye",
"threeparttable",
"TMate",
"TORQUE-1.1",
"TOSL",
"TPDL",
"TPL-1.0",
"TrustedQSL",
"TTWL",
"TTYP0",
"TU-Berlin-1.0",
"TU-Berlin-2.0",
"Ubuntu-font-1.0",
"UCAR",
"UCL-1.0",
"ulem",
"UMich-Merit",
"Unicode-3.0",
"Unicode-DFS-2015",
"Unicode-DFS-2016",
"Unicode-TOU",
"UnixCrypt",
"Unlicense",
"Unlicense-libtelnet",
"Unlicense-libwhirlpool",
"UPL-1.0",
"URT-RLE",
"Vim",
"VOSTROM",
"VSL-1.0",
"W3C",
"W3C-19980720",
"W3C-20150513",
"w3m",
"Watcom-1.0",
"Widget-Workshop",
"Wsuipa",
"WTFPL",
"wwl",
"X11",
"X11-distribute-modifications-variant",
"X11-swapped",
"Xdebug-1.03",
"Xerox",
"Xfig",
"XFree86-1.1",
"xinetd",
"xkeyboard-config-Zinoviev",
"xlock",
"Xnet",
"xpp",
"XSkat",
"xzoom",
"YPL-1.0",
"YPL-1.1",
"Zed",
"Zeeff",
"Zend-2.0",
"Zimbra-1.3",
"Zimbra-1.4",
"Zlib",
"zlib-acknowledgement",
"ZPL-1.1",
"ZPL-2.0",
"ZPL-2.1"
],
"title": "LicenseId",
"type": "string"
},
{
"enum": [
"AGPL-1.0",
"AGPL-3.0",
"BSD-2-Clause-FreeBSD",
"BSD-2-Clause-NetBSD",
"bzip2-1.0.5",
"eCos-2.0",
"GFDL-1.1",
"GFDL-1.2",
"GFDL-1.3",
"GPL-1.0",
"GPL-1.0+",
"GPL-2.0",
"GPL-2.0+",
"GPL-2.0-with-autoconf-exception",
"GPL-2.0-with-bison-exception",
"GPL-2.0-with-classpath-exception",
"GPL-2.0-with-font-exception",
"GPL-2.0-with-GCC-exception",
"GPL-3.0",
"GPL-3.0+",
"GPL-3.0-with-autoconf-exception",
"GPL-3.0-with-GCC-exception",
"LGPL-2.0",
"LGPL-2.0+",
"LGPL-2.1",
"LGPL-2.1+",
"LGPL-3.0",
"LGPL-3.0+",
"Net-SNMP",
"Nunit",
"StandardML-NJ",
"wxWindows"
],
"title": "DeprecatedLicenseId",
"type": "string"
},
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "A [SPDX license identifier](https://spdx.org/licenses/) or a custom license file.",
"examples": [
"CC0-1.0",
"MIT",
"BSD-2-Clause"
],
"title": "License"
},
"git_repo": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A URL to the Git repository where the resource is being developed.",
"examples": [
"https://github.com/bioimage-io/spec-bioimage-io/tree/main/example_descriptions/models/unet2d_nuclei_broad"
],
"title": "Git Repo"
},
"icon": {
"anyOf": [
{
"maxLength": 2,
"minLength": 1,
"type": "string"
},
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "An icon for illustration, e.g. on bioimage.io",
"title": "Icon"
},
"links": {
"description": "IDs of other bioimage.io resources",
"examples": [
[
"ilastik/ilastik",
"deepimagej/deepimagej",
"zero/notebook_u-net_3d_zerocostdl4mic"
]
],
"items": {
"type": "string"
},
"title": "Links",
"type": "array"
},
"uploader": {
"anyOf": [
{
"$ref": "#/$defs/Uploader"
},
{
"type": "null"
}
],
"default": null,
"description": "The person who uploaded the model (e.g. to bioimage.io)"
},
"maintainers": {
"description": "Maintainers of this resource.\nIf not specified, `authors` are maintainers and at least some of them has to specify their `github_user` name",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Maintainer"
},
"title": "Maintainers",
"type": "array"
},
"tags": {
"description": "Associated tags",
"examples": [
[
"unet2d",
"pytorch",
"nucleus",
"segmentation",
"dsb2018"
]
],
"items": {
"type": "string"
},
"title": "Tags",
"type": "array"
},
"version": {
"anyOf": [
{
"$ref": "#/$defs/Version"
},
{
"type": "null"
}
],
"default": null,
"description": "The version of the resource following SemVer 2.0."
},
"version_comment": {
"anyOf": [
{
"maxLength": 512,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A comment on the version of the resource.",
"title": "Version Comment"
},
"format_version": {
"const": "0.5.14",
"description": "Version of the bioimage.io model description specification used.\nWhen creating a new model always use the latest micro/patch version described here.\nThe `format_version` is important for any consumer software to understand how to parse the fields.",
"title": "Format Version",
"type": "string"
},
"type": {
"const": "model",
"description": "Specialized resource type 'model'",
"title": "Type",
"type": "string"
},
"id": {
"anyOf": [
{
"minLength": 1,
"title": "ModelId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "bioimage.io-wide unique resource identifier\nassigned by bioimage.io; version **un**specific.",
"title": "Id"
},
"inputs": {
"description": "Describes the input tensors expected by this model.",
"items": {
"$ref": "#/$defs/InputTensorDescr"
},
"minItems": 1,
"title": "Inputs",
"type": "array"
},
"outputs": {
"description": "Describes the output tensors.",
"items": {
"$ref": "#/$defs/OutputTensorDescr"
},
"minItems": 1,
"title": "Outputs",
"type": "array"
},
"packaged_by": {
"description": "The persons that have packaged and uploaded this model.\nOnly required if those persons differ from the `authors`.",
"items": {
"$ref": "#/$defs/bioimageio__spec__generic__v0_3__Author"
},
"title": "Packaged By",
"type": "array"
},
"parent": {
"anyOf": [
{
"$ref": "#/$defs/LinkedModel"
},
{
"type": "null"
}
],
"default": null,
"description": "The model from which this model is derived, e.g. by fine-tuning the weights."
},
"run_mode": {
"anyOf": [
{
"$ref": "#/$defs/RunMode"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom run mode for this model: for more complex prediction procedures like test time\ndata augmentation that currently cannot be expressed in the specification.\nNo standard run modes are defined yet."
},
"timestamp": {
"$ref": "#/$defs/Datetime",
"description": "Timestamp in [ISO 8601](#https://en.wikipedia.org/wiki/ISO_8601) format\nwith a few restrictions listed [here](https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat).\n(In Python a datetime object is valid, too)."
},
"training_data": {
"anyOf": [
{
"$ref": "#/$defs/LinkedDataset"
},
{
"$ref": "#/$defs/bioimageio__spec__dataset__v0_3__DatasetDescr"
},
{
"$ref": "#/$defs/bioimageio__spec__dataset__v0_2__DatasetDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "The dataset used to train this model",
"title": "Training Data"
},
"weights": {
"$ref": "#/$defs/WeightsDescr",
"description": "The weights for this model.\nWeights can be given for different formats, but should otherwise be equivalent.\nThe available weight formats determine which consumers can use this model."
},
"config": {
"$ref": "#/$defs/bioimageio__spec__model__v0_5__Config"
}
},
"required": [
"name",
"format_version",
"type",
"inputs",
"outputs",
"weights"
],
"title": "model 0.5.14",
"type": "object"
}
Fields:
-
_validation_summary(ValidationSummary | None) -
description(FAIR[Annotated[str, MaxLen(1024), warn(MaxLen(512), 'Description longer than 512 characters.')]]) -
covers(list[_FileDescr_cover]) -
id_emoji(Annotated[str, Len(min_length=1, max_length=2), Field(examples=['🦈', '🦥'])] | None) -
attachments(list[FileDescr_package]) -
cite(FAIR[list[CiteEntry]]) -
license(FAIR[Annotated[LicenseId | DeprecatedLicenseId | None | FileDescr_package, Field(union_mode='left_to_right', examples=['CC0-1.0', 'MIT', 'BSD-2-Clause'])]]) -
git_repo(Annotated[HttpUrl | None, Field(examples=['https://github.com/bioimage-io/spec-bioimage-io/tree/main/example_descriptions/models/unet2d_nuclei_broad'])]) -
icon(Annotated[str, Len(min_length=1, max_length=2)] | FileDescr_package | None) -
links(Annotated[list[str], Field(examples=[('ilastik/ilastik', 'deepimagej/deepimagej', 'zero/notebook_u-net_3d_zerocostdl4mic')])]) -
uploader(Uploader | None) -
maintainers(list[Maintainer]) -
tags(FAIR[Annotated[list[str], Field(examples=[('unet2d', 'pytorch', 'nucleus', 'segmentation', 'dsb2018')])]]) -
version(Version | None) -
version_comment(Annotated[str, MaxLen(512)] | None) -
format_version(Literal['0.5.14']) -
type(Literal['model']) -
id(ModelId | None) -
authors(FAIR[list[Author]]) -
documentation(FAIR[FileDescr_documentation | None]) -
inputs(NotEmpty[Sequence[InputTensorDescr]]) -
name(Annotated[str, RestrictCharacters(string.ascii_letters + string.digits + '_+- ()'), MinLen(5), MaxLen(128), warn(MaxLen(64), 'Name longer than 64 characters.', INFO)]) -
outputs(NotEmpty[Sequence[OutputTensorDescr]]) -
packaged_by(list[Author]) -
parent(LinkedModel | None) -
run_mode(Annotated[RunMode | None, warn(None, "Run mode '{value}' has limited support across consumer softwares.")]) -
timestamp(Datetime) -
training_data(Annotated[None | LinkedDataset | DatasetDescr | DatasetDescr02, Field(union_mode='left_to_right')]) -
weights(Annotated[WeightsDescr, WrapSerializer(package_weights)]) -
config(Config)
Validators:
-
_validate_documentation→documentation -
_validate_input_axes→inputs -
_validate_test_tensors -
_validate_tensor_references_in_proc_kwargs -
_validate_tensor_ids→outputs -
_validate_output_axes→outputs -
_validate_parent_is_not_self -
_validate_reproducibility_tolerance_output_ids -
_add_default_cover -
_convert
authors
pydantic-field
¤
authors: FAIR[list[Author]]
The authors are the creators of the model RDF and the primary points of contact.
description
pydantic-field
¤
description: FAIR[
Annotated[
str,
MaxLen(1024),
warn(
MaxLen(512),
"Description longer than 512 characters.",
),
]
] = ""
A string containing a brief description.
documentation
pydantic-field
¤
documentation: FAIR[FileDescr_documentation | None] = None
Additional model documentation.
The recommended documentation source file name is README.md. An .md suffix is mandatory.
The documentation should include a '#[#] Validation' (sub)section
with details on how to quantitatively validate the model on unseen data.
file_name
property
¤
file_name: FileName | None
File name of the bioimageio.yaml file the description was loaded from.
git_repo
pydantic-field
¤
git_repo: Annotated[
HttpUrl | None,
Field(
examples=[
"https://github.com/bioimage-io/spec-bioimage-io/tree/main/example_descriptions/models/unet2d_nuclei_broad"
]
),
] = None
A URL to the Git repository where the resource is being developed.
icon
pydantic-field
¤
icon: (
Annotated[str, Len(min_length=1, max_length=2)]
| FileDescr_package
| None
) = None
An icon for illustration, e.g. on bioimage.io
id
pydantic-field
¤
id: ModelId | None = None
bioimage.io-wide unique resource identifier assigned by bioimage.io; version unspecific.
id_emoji
pydantic-field
¤
id_emoji: (
Annotated[
str,
Len(min_length=1, max_length=2),
Field(examples=["🦈", "🦥"]),
]
| None
) = None
UTF-8 emoji for display alongside the id.
implemented_format_version
class-attribute
¤
implemented_format_version: Literal['0.5.14'] = '0.5.14'
implemented_format_version_tuple
class-attribute
¤
implemented_format_version_tuple: tuple[int, int, int]
inputs
pydantic-field
¤
inputs: NotEmpty[Sequence[InputTensorDescr]]
Describes the input tensors expected by this model.
license
pydantic-field
¤
license: FAIR[
Annotated[
LicenseId
| DeprecatedLicenseId
| None
| FileDescr_package,
Field(
union_mode="left_to_right",
examples=["CC0-1.0", "MIT", "BSD-2-Clause"],
),
]
] = None
A SPDX license identifier or a custom license file.
links
pydantic-field
¤
links: Annotated[
list[str],
Field(
examples=[
(
"ilastik/ilastik",
"deepimagej/deepimagej",
"zero/notebook_u-net_3d_zerocostdl4mic",
)
]
),
]
IDs of other bioimage.io resources
maintainers
pydantic-field
¤
maintainers: list[Maintainer]
Maintainers of this resource.
If not specified, authors are maintainers and at least some of them has to specify their github_user name
name
pydantic-field
¤
name: Annotated[
str,
RestrictCharacters(
string.ascii_letters + string.digits + "_+- ()"
),
MinLen(5),
MaxLen(128),
warn(
MaxLen(64), "Name longer than 64 characters.", INFO
),
]
A human-readable name of this model. It should be no longer than 64 characters and may only contain letter, number, underscore, minus, parentheses and spaces. We recommend to chose a name that refers to the model's task and image modality.
outputs
pydantic-field
¤
outputs: NotEmpty[Sequence[OutputTensorDescr]]
Describes the output tensors.
packaged_by
pydantic-field
¤
packaged_by: list[Author]
The persons that have packaged and uploaded this model.
Only required if those persons differ from the authors.
parent
pydantic-field
¤
parent: LinkedModel | None = None
The model from which this model is derived, e.g. by fine-tuning the weights.
root
property
¤
root: RootHttpUrl | DirectoryPath | ZipFile
The URL/Path prefix to resolve any relative paths with.
run_mode
pydantic-field
¤
run_mode: Annotated[
RunMode | None,
warn(
None,
"Run mode '{value}' has limited support across consumer softwares.",
),
] = None
Custom run mode for this model: for more complex prediction procedures like test time data augmentation that currently cannot be expressed in the specification. No standard run modes are defined yet.
tags
pydantic-field
¤
tags: FAIR[
Annotated[
list[str],
Field(
examples=[
(
"unet2d",
"pytorch",
"nucleus",
"segmentation",
"dsb2018",
)
]
),
]
]
Associated tags
training_data
pydantic-field
¤
training_data: Annotated[
None | LinkedDataset | DatasetDescr | DatasetDescr02,
Field(union_mode="left_to_right"),
] = None
The dataset used to train this model
uploader
pydantic-field
¤
uploader: Uploader | None = None
The person who uploaded the model (e.g. to bioimage.io)
version
pydantic-field
¤
version: Version | None = None
The version of the resource following SemVer 2.0.
version_comment
pydantic-field
¤
version_comment: Annotated[str, MaxLen(512)] | None = None
A comment on the version of the resource.
weights
pydantic-field
¤
weights: Annotated[
WeightsDescr, WrapSerializer(package_weights)
]
The weights for this model. Weights can be given for different formats, but should otherwise be equivalent. The available weight formats determine which consumers can use this model.
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any)
Source code in src/bioimageio/spec/_internal/common_nodes.py
201 202 203 204 205 206 207 208 209 210 211 212 213 | |
convert_from_old_format_wo_validation
classmethod
¤
convert_from_old_format_wo_validation(
data: dict[str, Any],
) -> None
Convert metadata following an older format version to this classes' format without validating the result.
Source code in src/bioimageio/spec/model/v0_5.py
4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get_axis_sizes
¤
get_axis_sizes(
ns: Mapping[
tuple[TensorId, AxisId], ParameterizedSize_N
],
batch_size: int | None = None,
*,
max_input_shape: Mapping[tuple[TensorId, AxisId], int]
| None = None,
) -> _AxisSizes
Determine input and output block shape for scale factors ns of parameterized input sizes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Mapping[tuple[TensorId, AxisId], ParameterizedSize_N]
|
Scale factor |
required |
|
int | None
|
The desired size of the batch dimension. If given batch_size overwrites any batch size present in max_input_shape. Default 1. |
None
|
|
Mapping[tuple[TensorId, AxisId], int] | None
|
Limits the derived block shapes.
Each axis for which the input size, parameterized by |
None
|
Returns:
| Type | Description |
|---|---|
_AxisSizes
|
Resolved axis sizes for model inputs and outputs. |
Source code in src/bioimageio/spec/model/v0_5.py
4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 | |
get_batch_size
staticmethod
¤
Source code in src/bioimageio/spec/model/v0_5.py
4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 | |
get_input_test_arrays
¤
get_input_test_arrays() -> list[NDArray[Any]]
Source code in src/bioimageio/spec/model/v0_5.py
4091 4092 | |
get_ns
¤
get parameter n for each parameterized axis
such that the valid input size is >= the given input size
Source code in src/bioimageio/spec/model/v0_5.py
4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 | |
get_output_tensor_sizes
¤
get_output_tensor_sizes(
input_sizes: Mapping[TensorId, Mapping[AxisId, int]],
) -> dict[TensorId, dict[AxisId, int | _DataDepSize]]
Returns the tensor output sizes for given input_sizes. Only if input_sizes has a valid input shape, the tensor output size is exact. Otherwise it might be larger than the actual (valid) output
Source code in src/bioimageio/spec/model/v0_5.py
4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 | |
get_output_test_arrays
¤
get_output_test_arrays() -> list[NDArray[Any]]
Source code in src/bioimageio/spec/model/v0_5.py
4094 4095 | |
get_package_content
¤
get_package_content(
local_files_only: bool = False,
) -> dict[FileName, FileDescr | BioimageioYamlContent]
Returns package content without creating the package.
Source code in src/bioimageio/spec/_internal/common_nodes.py
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 | |
get_tensor_sizes
¤
get_tensor_sizes(
ns: Mapping[
tuple[TensorId, AxisId], ParameterizedSize_N
],
batch_size: int,
max_input_shape: Mapping[TensorId, Mapping[AxisId, int]]
| None = None,
) -> _TensorSizes
Source code in src/bioimageio/spec/model/v0_5.py
4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 | |
load
classmethod
¤
load(
data: IncompleteDescrView,
context: ValidationContext | None = None,
) -> Self | InvalidDescr
factory method to create a resource description object
Source code in src/bioimageio/spec/_internal/common_nodes.py
226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | |
load_from_kwargs
classmethod
¤
load_from_kwargs(
context: ValidationContext | None = None,
*args: P.args,
**kwargs: P.kwargs,
) -> T | InvalidDescr
Source code in src/bioimageio/spec/_internal/common_nodes.py
215 216 217 218 219 220 221 222 223 224 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
package
¤
package(
dest: ZipFile | IO[bytes] | Path | str | None = None,
/,
local_files_only: bool = False,
) -> ZipFile
package the described resource as a zip archive
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
ZipFile | IO[bytes] | Path | str | None
|
(path/bytes stream of) destination zipfile |
None
|
Source code in src/bioimageio/spec/_internal/common_nodes.py
359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 | |
validate_input_tensors
¤
validate_input_tensors(
sources: Sequence[NDArray[Any]]
| Mapping[TensorId, NDArray[Any] | None],
*,
pad_inputs: bool | Literal["allow"] = True,
crop_outputs: bool | Literal["allow"] = True,
) -> Mapping[TensorId, NDArray[Any] | None]
Check if the given input tensors match the model's input tensor descriptions. This includes checks of tensor shapes and dtypes, but not of the actual values.
Source code in src/bioimageio/spec/model/v0_5.py
3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 | |
warn_about_tag_categories
classmethod
¤
warn_about_tag_categories(
value: list[str], info: ValidationInfo
) -> list[str]
Source code in src/bioimageio/spec/generic/v0_3.py
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 | |
ModelId
¤
Bases: ResourceId
flowchart TD
bioimageio.spec.model.v0_5.ModelId[ModelId]
bioimageio.spec.generic.v0_3.ResourceId[ResourceId]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec.generic.v0_3.ResourceId --> bioimageio.spec.model.v0_5.ModelId
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.generic.v0_3.ResourceId
click bioimageio.spec.model.v0_5.ModelId href "" "bioimageio.spec.model.v0_5.ModelId"
click bioimageio.spec.generic.v0_3.ResourceId href "" "bioimageio.spec.generic.v0_3.ResourceId"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
root_model: type[RootModel[Any]] = RootModel[
Annotated[
NotEmpty[str],
RestrictCharacters(
string.ascii_lowercase + string.digits + "_-/."
),
annotated_types.Predicate(
lambda s: (
not (
s.startswith("/") or s.endswith("/")
)
)
),
]
]
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
NominalOrOrdinalDataDescr
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"values": {
"anyOf": [
{
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "boolean"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
}
],
"description": "A fixed set of nominal or an ascending sequence of ordinal values.\nIn this case `data.type` is required to be an unsigend integer type, e.g. 'uint8'.\nString `values` are interpreted as labels for tensor values 0, ..., N.\nNote: as YAML 1.2 does not natively support a \"set\" datatype,\nnominal values should be given as a sequence (aka list/array) as well.",
"title": "Values"
},
"type": {
"default": "uint8",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"examples": [
"float32",
"uint8",
"uint16",
"int64",
"bool"
],
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
}
},
"required": [
"values"
],
"title": "model.v0_5.NominalOrOrdinalDataDescr",
"type": "object"
}
Fields:
-
values(TVs) -
type(Annotated[NominalOrOrdinalDType, Field(examples=['float32', 'uint8', 'uint16', 'int64', 'bool'])]) -
unit(Literal['arbitrary unit'] | SiUnit | None)
Validators:
-
_validate_values_match_type
type
pydantic-field
¤
type: Annotated[
NominalOrOrdinalDType,
Field(
examples=[
"float32",
"uint8",
"uint16",
"int64",
"bool",
]
),
] = "uint8"
values
pydantic-field
¤
values: TVs
A fixed set of nominal or an ascending sequence of ordinal values.
In this case data.type is required to be an unsigend integer type, e.g. 'uint8'.
String values are interpreted as labels for tensor values 0, ..., N.
Note: as YAML 1.2 does not natively support a "set" datatype,
nominal values should be given as a sequence (aka list/array) as well.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
OnnxWeightsDescr
pydantic-model
¤
Bases: WeightsEntryDescrBase
Show JSON schema:
{
"$defs": {
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"FileDescr": {
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
}
},
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"opset_version": {
"description": "ONNX opset version",
"minimum": 7,
"title": "Opset Version",
"type": "integer"
},
"external_data": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "weights.onnx.data"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Source of the external ONNX data file holding the weights.\n(If present **source** holds the ONNX architecture without weights)."
}
},
"required": [
"source",
"opset_version"
],
"title": "model.v0_5.OnnxWeightsDescr",
"type": "object"
}
Fields:
-
source(Annotated[FileSource, AfterValidator(wo_special_file_name)]) -
sha256(Sha256 | None) -
authors(list[Author] | None) -
parent(Annotated[WeightsFormat | None, Field(examples=['pytorch_state_dict'])]) -
comment(str) -
opset_version(Annotated[int, Ge(7)]) -
external_data(FileDescr_external_data | None)
Validators:
-
_validate -
_validate_external_data_unique_file_name
authors
pydantic-field
¤
authors: list[Author] | None = None
Authors
Either the person(s) that have trained this model resulting in the original weights file.
(If this is the initial weights entry, i.e. it does not have a parent)
Or the person(s) who have converted the weights to this weights format.
(If this is a child weight, i.e. it has a parent field)
comment
pydantic-field
¤
comment: str = ''
A comment about this weights entry, for example how these weights were created.
external_data
pydantic-field
¤
external_data: FileDescr_external_data | None = None
Source of the external ONNX data file holding the weights. (If present source holds the ONNX architecture without weights).
parent
pydantic-field
¤
parent: Annotated[
WeightsFormat | None,
Field(examples=["pytorch_state_dict"]),
] = None
The source weights these weights were converted from.
For example, if a model's weights were converted from the pytorch_state_dict format to torchscript,
The pytorch_state_dict weights entry has no parent and is the parent of the torchscript weights.
All weight entries except one (the initial set of weights resulting from training the model),
need to have this field.
source
pydantic-field
¤
source: Annotated[
FileSource, AfterValidator(wo_special_file_name)
]
Source of the weights file.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
OrcidId
¤
Bases: ValidatedString
flowchart TD
bioimageio.spec.model.v0_5.OrcidId[OrcidId]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.model.v0_5.OrcidId
click bioimageio.spec.model.v0_5.OrcidId href "" "bioimageio.spec.model.v0_5.OrcidId"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
An ORCID identifier, see https://orcid.org/
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
OutputTensorDescr
pydantic-model
¤
Bases: TensorDescrBase[OutputAxis]
Show JSON schema:
{
"$defs": {
"BatchAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "batch",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "batch",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"const": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The batch size may be fixed to 1,\notherwise (the default) it may be chosen arbitrarily depending on available memory",
"title": "Size"
}
},
"required": [
"type"
],
"title": "model.v0_5.BatchAxis",
"type": "object"
},
"BinarizeAlongAxisKwargs": {
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold values along `axis`",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Threshold",
"type": "array"
},
"axis": {
"description": "The `threshold` axis",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"threshold",
"axis"
],
"title": "model.v0_5.BinarizeAlongAxisKwargs",
"type": "object"
},
"BinarizeDescr": {
"additionalProperties": false,
"description": "Binarize the tensor with a fixed threshold.\n\nValues above [BinarizeKwargs.threshold][]/[BinarizeAlongAxisKwargs.threshold][]\nwill be set to one, values below the threshold to zero.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: binarize\n kwargs:\n axis: 'channel'\n threshold: [0.25, 0.5, 0.75]\n ```\n- in Python:\n\n >>> postprocessing = [BinarizeDescr(\n ... kwargs=BinarizeAlongAxisKwargs(\n ... axis=AxisId('channel'),\n ... threshold=[0.25, 0.5, 0.75],\n ... )\n ... )]",
"properties": {
"id": {
"const": "binarize",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/BinarizeKwargs"
},
{
"$ref": "#/$defs/BinarizeAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.BinarizeDescr",
"type": "object"
},
"BinarizeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [BinarizeDescr][]",
"properties": {
"threshold": {
"description": "The fixed threshold",
"title": "Threshold",
"type": "number"
}
},
"required": [
"threshold"
],
"title": "model.v0_5.BinarizeKwargs",
"type": "object"
},
"CellposeFlowDynamicsDescr": {
"additionalProperties": false,
"description": "Cellpose flow dynamics postprocessing as described in:\n- Carsen Stringer and Marius Pachitariu. [*Cellpose: a generalist algorithm for cellular segmentation*](https://www.nature.com/articles/s41592-020-01018-x). Nature Methods, 2021.\n\nNote: Only available if the `cellpose` package is installed.",
"properties": {
"id": {
"const": "cellpose_flow_dynamics",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/CellposeFlowDynamicsKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.CellposeFlowDynamicsDescr",
"type": "object"
},
"CellposeFlowDynamicsKwargs": {
"additionalProperties": false,
"description": "key word arguments for [CellposeFlowDynamicsDescr][]",
"properties": {
"cellprob_threshold": {
"title": "Cellprob Threshold",
"type": "number"
},
"flow_threshold": {
"title": "Flow Threshold",
"type": "number"
},
"do_3D": {
"title": "Do 3D",
"type": "boolean"
},
"min_size": {
"default": 15,
"description": "Minimum size of objects to keep, in pixels. Default is 15, which is the default in Cellpose. Set to 0 to disable filtering by size.",
"title": "Min Size",
"type": "integer"
},
"output_dtype": {
"default": "uint16",
"enum": [
"uint16",
"uint32"
],
"title": "Output Dtype",
"type": "string"
}
},
"required": [
"cellprob_threshold",
"flow_threshold",
"do_3D"
],
"title": "model.v0_5.CellposeFlowDynamicsKwargs",
"type": "object"
},
"ChannelAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "channel",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "channel",
"title": "Type",
"type": "string"
},
"channel_names": {
"description": "Name/label for each channel. The number of channels is given by `len(channel_names)`.",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Channel Names",
"type": "array"
}
},
"required": [
"type",
"channel_names"
],
"title": "model.v0_5.ChannelAxis",
"type": "object"
},
"ClipDescr": {
"additionalProperties": false,
"description": "Set tensor values below min to min and above max to max.\n\nSee `ScaleRangeDescr` for examples.",
"properties": {
"id": {
"const": "clip",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ClipKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ClipDescr",
"type": "object"
},
"ClipKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ClipDescr][]",
"properties": {
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum value for clipping.\n\nExclusive with [min_percentile][]",
"title": "Min"
},
"min_percentile": {
"anyOf": [
{
"exclusiveMaximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum percentile for clipping.\n\nExclusive with [min][].\n\nIn range [0, 100).",
"title": "Min Percentile"
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum value for clipping.\n\nExclusive with `max_percentile`.",
"title": "Max"
},
"max_percentile": {
"anyOf": [
{
"exclusiveMinimum": 1,
"maximum": 100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum percentile for clipping.\n\nExclusive with `max`.\n\nIn range (1, 100].",
"title": "Max Percentile"
},
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to determine percentiles jointly,\n\ni.e. axes to reduce to compute min/max from `min_percentile`/`max_percentile`.\nFor example to clip 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape with clipped values per channel, specify `axes=('batch', 'x', 'y')`.\nTo clip samples independently, leave out the 'batch' axis.\n\nOnly valid if `min_percentile` and/or `max_percentile` are set.\n\nDefault: Compute percentiles over all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
}
},
"title": "model.v0_5.ClipKwargs",
"type": "object"
},
"CustomProcessingDescr": {
"additionalProperties": false,
"description": "Custom (post)processing op \u2014 source file shipped inline with the model.\n\nSupports (post)processing that cannot be expressed by the built-in named\noperations (watershed, connected components, etc.)\nusing a simple Python callable interface.\n\nThe op is implemented in a ``.py`` file packaged alongside the model weights.\nTwo styles are supported:\n\n*Callable class* \u2014 kwargs go to ``__init__``, tensors arrive in ``__call__``:\n\n.. code-block:: python\n\n # my_postprocess.py\n import numpy as np\n\n class my_postprocess:\n def __init__(self, threshold: float = 0.5) -> None:\n self.threshold = threshold\n def __call__(self, *arrays: np.ndarray) -> np.ndarray:\n # arrays = model output tensors in rdf.yaml declaration order\n return (arrays[0] > self.threshold).astype(np.uint8)\n\n*Factory function* \u2014 alternative closure style, identical runtime behaviour:\n\n.. code-block:: python\n\n # my_postprocess.py\n import numpy as np\n\n def my_postprocess(threshold: float = 0.5):\n def run(*arrays: np.ndarray) -> np.ndarray:\n return (arrays[0] > threshold).astype(np.uint8)\n return run\n\nReference it in ``rdf.yaml`` with the source file included in the package:\n\n.. code-block:: yaml\n\n postprocessing:\n - id: custom\n callable: my_postprocess # class or function name in source\n source: my_postprocess.py # packaged alongside weights\n sha256: <hash> # sha256 of the source file\n kwargs: # forwarded to __init__ / factory\n threshold: 0.5\n\n**Security:** source files are SHA-256 verified before execution.\nExecution requires explicit opt-in in bioimageio.core and curator\nreview before Zoo publication.",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Python source file (included when packaging the model).",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"id": {
"const": "custom",
"title": "Id",
"type": "string"
},
"callable": {
"description": "Name of the callable class or factory function defined in ``source``.\n\nAt runtime: ``op = callable(**kwargs)``, then ``result = op(*output_tensors)``\nper image. Both a class with ``__call__`` and a factory function returning\na callable satisfy this protocol.",
"examples": [
"my_postprocess_factory",
"MyPostprocessClass"
],
"title": "Callable",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "Keyword arguments forwarded to the callable (``__init__`` or factory).",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"source",
"id",
"callable"
],
"title": "model.v0_5.CustomProcessingDescr",
"type": "object"
},
"DataDependentSize": {
"additionalProperties": false,
"properties": {
"min": {
"default": 1,
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"max": {
"anyOf": [
{
"exclusiveMinimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max"
}
},
"title": "model.v0_5.DataDependentSize",
"type": "object"
},
"EnsureDtypeDescr": {
"additionalProperties": false,
"description": "Cast the tensor data type to `EnsureDtypeKwargs.dtype` (if not matching).\n\nThis can for example be used to ensure the inner neural network model gets a\ndifferent input tensor data type than the fully described bioimage.io model does.\n\nExamples:\n The described bioimage.io model (incl. preprocessing) accepts any\n float32-compatible tensor, normalizes it with percentiles and clipping and then\n casts it to uint8, which is what the neural network in this example expects.\n - in YAML\n ```yaml\n inputs:\n - data:\n type: float32 # described bioimage.io model is compatible with any float32 input tensor\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n - id: clip\n kwargs:\n min: 0.0\n max: 1.0\n - id: ensure_dtype # the neural network of the model requires uint8\n kwargs:\n dtype: uint8\n ```\n - in Python:\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... ),\n ... ClipDescr(kwargs=ClipKwargs(min=0.0, max=1.0)),\n ... EnsureDtypeDescr(kwargs=EnsureDtypeKwargs(dtype=\"uint8\")),\n ... ]",
"properties": {
"id": {
"const": "ensure_dtype",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/EnsureDtypeKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.EnsureDtypeDescr",
"type": "object"
},
"EnsureDtypeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [EnsureDtypeDescr][]",
"properties": {
"dtype": {
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"title": "Dtype",
"type": "string"
}
},
"required": [
"dtype"
],
"title": "model.v0_5.EnsureDtypeKwargs",
"type": "object"
},
"FileDescr": {
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
},
"FixedZeroMeanUnitVarianceAlongAxisKwargs": {
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value(s) to normalize with.",
"items": {
"type": "number"
},
"minItems": 1,
"title": "Mean",
"type": "array"
},
"std": {
"description": "The standard deviation value(s) to normalize with.\nSize must match `mean` values.",
"items": {
"minimum": 1e-06,
"type": "number"
},
"minItems": 1,
"title": "Std",
"type": "array"
},
"axis": {
"description": "The axis of the mean/std values to normalize each entry along that dimension\nseparately.",
"examples": [
"channel",
"index"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"required": [
"mean",
"std",
"axis"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceAlongAxisKwargs",
"type": "object"
},
"FixedZeroMeanUnitVarianceDescr": {
"additionalProperties": false,
"description": "Subtract a given mean and divide by the standard deviation.\n\nNormalize with fixed, precomputed values for\n`FixedZeroMeanUnitVarianceKwargs.mean` and `FixedZeroMeanUnitVarianceKwargs.std`\nUse `FixedZeroMeanUnitVarianceAlongAxisKwargs` for independent scaling along given\naxes.\n\nExamples:\n1. scalar value for whole tensor\n - in YAML\n ```yaml\n preprocessing:\n - id: fixed_zero_mean_unit_variance\n kwargs:\n mean: 103.5\n std: 13.7\n ```\n - in Python\n >>> preprocessing = [FixedZeroMeanUnitVarianceDescr(\n ... kwargs=FixedZeroMeanUnitVarianceKwargs(mean=103.5, std=13.7)\n ... )]\n\n2. independently along an axis\n - in YAML\n ```yaml\n preprocessing:\n - id: fixed_zero_mean_unit_variance\n kwargs:\n axis: channel\n mean: [101.5, 102.5, 103.5]\n std: [11.7, 12.7, 13.7]\n ```\n - in Python\n >>> preprocessing = [FixedZeroMeanUnitVarianceDescr(\n ... kwargs=FixedZeroMeanUnitVarianceAlongAxisKwargs(\n ... axis=AxisId(\"channel\"),\n ... mean=[101.5, 102.5, 103.5],\n ... std=[11.7, 12.7, 13.7],\n ... )\n ... )]",
"properties": {
"id": {
"const": "fixed_zero_mean_unit_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceKwargs"
},
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceDescr",
"type": "object"
},
"FixedZeroMeanUnitVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [FixedZeroMeanUnitVarianceDescr][]",
"properties": {
"mean": {
"description": "The mean value to normalize with.",
"title": "Mean",
"type": "number"
},
"std": {
"description": "The standard deviation value to normalize with.",
"minimum": 1e-06,
"title": "Std",
"type": "number"
}
},
"required": [
"mean",
"std"
],
"title": "model.v0_5.FixedZeroMeanUnitVarianceKwargs",
"type": "object"
},
"IndexOutputAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "index",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "index",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
},
{
"$ref": "#/$defs/DataDependentSize"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset ([SizeReference][])\n- data dependent size using [DataDependentSize][] (size is only known after model inference)",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
}
},
"required": [
"type",
"size"
],
"title": "model.v0_5.IndexOutputAxis",
"type": "object"
},
"IntervalOrRatioDataDescr": {
"additionalProperties": false,
"properties": {
"type": {
"default": "float32",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64"
],
"examples": [
"float32",
"float64",
"uint8",
"uint16"
],
"title": "Type",
"type": "string"
},
"range": {
"default": [
null,
null
],
"description": "Tuple `(minimum, maximum)` specifying the allowed range of the data in this tensor.\n`None` corresponds to min/max of what can be expressed by **type**.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
],
"title": "Range",
"type": "array"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
}
],
"default": "arbitrary unit",
"title": "Unit"
},
"scale": {
"default": 1.0,
"description": "Scale for data on an interval (or ratio) scale.",
"title": "Scale",
"type": "number"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Offset for data on a ratio scale.",
"title": "Offset"
}
},
"title": "model.v0_5.IntervalOrRatioDataDescr",
"type": "object"
},
"NominalOrOrdinalDataDescr": {
"additionalProperties": false,
"properties": {
"values": {
"anyOf": [
{
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "boolean"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
}
],
"description": "A fixed set of nominal or an ascending sequence of ordinal values.\nIn this case `data.type` is required to be an unsigend integer type, e.g. 'uint8'.\nString `values` are interpreted as labels for tensor values 0, ..., N.\nNote: as YAML 1.2 does not natively support a \"set\" datatype,\nnominal values should be given as a sequence (aka list/array) as well.",
"title": "Values"
},
"type": {
"default": "uint8",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"examples": [
"float32",
"uint8",
"uint16",
"int64",
"bool"
],
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
}
},
"required": [
"values"
],
"title": "model.v0_5.NominalOrOrdinalDataDescr",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"ScaleLinearAlongAxisKwargs": {
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"axis": {
"description": "The axis of gain and offset values.",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"gain": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 0.0,
"description": "additive term",
"title": "Offset"
}
},
"required": [
"axis"
],
"title": "model.v0_5.ScaleLinearAlongAxisKwargs",
"type": "object"
},
"ScaleLinearDescr": {
"additionalProperties": false,
"description": "Fixed linear scaling.\n\nExamples:\n 1. Scale with scalar gain and offset\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_linear\n kwargs:\n gain: 2.0\n offset: 3.0\n ```\n - in Python:\n\n >>> preprocessing = [\n ... ScaleLinearDescr(kwargs=ScaleLinearKwargs(gain= 2.0, offset=3.0))\n ... ]\n\n 2. Independent scaling along an axis\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_linear\n kwargs:\n axis: 'channel'\n gain: [1.0, 2.0, 3.0]\n ```\n - in Python:\n\n >>> preprocessing = [\n ... ScaleLinearDescr(\n ... kwargs=ScaleLinearAlongAxisKwargs(\n ... axis=AxisId(\"channel\"),\n ... gain=[1.0, 2.0, 3.0],\n ... )\n ... )\n ... ]",
"properties": {
"id": {
"const": "scale_linear",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/ScaleLinearKwargs"
},
{
"$ref": "#/$defs/ScaleLinearAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ScaleLinearDescr",
"type": "object"
},
"ScaleLinearKwargs": {
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"gain": {
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain",
"type": "number"
},
"offset": {
"default": 0.0,
"description": "additive term",
"title": "Offset",
"type": "number"
}
},
"title": "model.v0_5.ScaleLinearKwargs",
"type": "object"
},
"ScaleMeanVarianceDescr": {
"additionalProperties": false,
"description": "Scale a tensor's data distribution to match another tensor's mean/std.\n`out = (tensor - mean) / (std + eps) * (ref_std + eps) + ref_mean.`",
"properties": {
"id": {
"const": "scale_mean_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ScaleMeanVarianceKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ScaleMeanVarianceDescr",
"type": "object"
},
"ScaleMeanVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ScaleMeanVarianceKwargs][]",
"properties": {
"reference_tensor": {
"description": "ID of unprocessed input tensor to match.",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize samples independently, leave out the 'batch' axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"eps": {
"default": 1e-06,
"description": "Epsilon for numeric stability:\n`out = (tensor - mean) / (std + eps) * (ref_std + eps) + ref_mean.`",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
}
},
"required": [
"reference_tensor"
],
"title": "model.v0_5.ScaleMeanVarianceKwargs",
"type": "object"
},
"ScaleRangeDescr": {
"additionalProperties": false,
"description": "Scale with percentiles.\n\nExamples:\n1. Scale linearly to map 5th percentile to 0 and 99.8th percentile to 1.0\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n ```\n - in Python\n\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... )\n ... ]\n\n 2. Combine the above scaling with additional clipping to clip values outside the range given by the percentiles.\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n - id: clip\n kwargs:\n min: 0.0\n max: 1.0\n ```\n - in Python\n\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... ),\n ... ClipDescr(\n ... kwargs=ClipKwargs(\n ... min=0.0,\n ... max=1.0,\n ... )\n ... ),\n ... ]",
"properties": {
"id": {
"const": "scale_range",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ScaleRangeKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.ScaleRangeDescr",
"type": "object"
},
"ScaleRangeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ScaleRangeDescr][]\n\nFor `min_percentile`=0.0 (the default) and `max_percentile`=100 (the default)\nthis processing step normalizes data to the [0, 1] intervall.\nFor other percentiles the normalized values will partially be outside the [0, 1]\nintervall. Use `ScaleRange` followed by `ClipDescr` if you want to limit the\nnormalized values to a range.",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute the min/max percentile value.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize samples independently, leave out the \"batch\" axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"min_percentile": {
"default": 0.0,
"description": "The lower percentile used to determine the value to align with zero.",
"exclusiveMaximum": 100,
"minimum": 0,
"title": "Min Percentile",
"type": "number"
},
"max_percentile": {
"default": 100.0,
"description": "The upper percentile used to determine the value to align with one.\nHas to be bigger than `min_percentile`.\nThe range is 1 to 100 instead of 0 to 100 to avoid mistakenly\naccepting percentiles specified in the range 0.0 to 1.0.",
"exclusiveMinimum": 1,
"maximum": 100,
"title": "Max Percentile",
"type": "number"
},
"eps": {
"default": 1e-06,
"description": "Epsilon for numeric stability.\n`out = (tensor - v_lower) / (v_upper - v_lower + eps)`;\nwith `v_lower,v_upper` values at the respective percentiles.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
},
"reference_tensor": {
"anyOf": [
{
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the unprocessed input tensor to compute the percentiles from.\nDefault: The tensor itself.",
"title": "Reference Tensor"
}
},
"title": "model.v0_5.ScaleRangeKwargs",
"type": "object"
},
"SigmoidDescr": {
"additionalProperties": false,
"description": "The logistic sigmoid function, a.k.a. expit function.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: sigmoid\n ```\n- in Python:\n\n >>> postprocessing = [SigmoidDescr()]",
"properties": {
"id": {
"const": "sigmoid",
"title": "Id",
"type": "string"
}
},
"required": [
"id"
],
"title": "model.v0_5.SigmoidDescr",
"type": "object"
},
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
},
"SoftmaxDescr": {
"additionalProperties": false,
"description": "The softmax function.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: softmax\n kwargs:\n axis: channel\n ```\n- in Python:\n\n >>> postprocessing = [SoftmaxDescr(kwargs=SoftmaxKwargs(axis=AxisId(\"channel\")))]",
"properties": {
"id": {
"const": "softmax",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/SoftmaxKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.SoftmaxDescr",
"type": "object"
},
"SoftmaxKwargs": {
"additionalProperties": false,
"description": "key word arguments for [SoftmaxDescr][]",
"properties": {
"axis": {
"default": "channel",
"description": "The axis to apply the softmax function along.\nNote:\n Defaults to 'channel' axis\n (which may not exist, in which case\n a different axis id has to be specified).",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"title": "model.v0_5.SoftmaxKwargs",
"type": "object"
},
"SpaceOutputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.SpaceOutputAxis",
"type": "object"
},
"SpaceOutputAxisWithHalo": {
"additionalProperties": false,
"properties": {
"halo": {
"description": "The halo should be cropped from the output tensor to avoid boundary effects.\nIt is to be cropped from both sides, i.e. `size_after_crop = size - 2 * halo`.\nTo document a halo that is already cropped by the model use `size.offset` instead.",
"minimum": 1,
"title": "Halo",
"type": "integer"
},
"size": {
"$ref": "#/$defs/SizeReference",
"description": "reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
]
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"halo",
"size",
"type"
],
"title": "model.v0_5.SpaceOutputAxisWithHalo",
"type": "object"
},
"StardistPostprocessingDescr": {
"additionalProperties": false,
"description": "Stardist postprocessing including non-maximum suppression and converting polygon representations to instance labels\n\nas described in:\n- Uwe Schmidt, Martin Weigert, Coleman Broaddus, and Gene Myers.\n[*Cell Detection with Star-convex Polygons*](https://arxiv.org/abs/1806.03535).\nInternational Conference on Medical Image Computing and Computer-Assisted Intervention (MICCAI), Granada, Spain, September 2018.\n- Martin Weigert, Uwe Schmidt, Robert Haase, Ko Sugawara, and Gene Myers.\n[*Star-convex Polyhedra for 3D Object Detection and Segmentation in Microscopy*](http://openaccess.thecvf.com/content_WACV_2020/papers/Weigert_Star-convex_Polyhedra_for_3D_Object_Detection_and_Segmentation_in_Microscopy_WACV_2020_paper.pdf).\nThe IEEE Winter Conference on Applications of Computer Vision (WACV), Snowmass Village, Colorado, March 2020.\n\nNote: Only available if the `stardist` package is installed.",
"properties": {
"id": {
"const": "stardist_postprocessing",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/StardistPostprocessingKwargs2D"
},
{
"$ref": "#/$defs/StardistPostprocessingKwargs3D"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.StardistPostprocessingDescr",
"type": "object"
},
"StardistPostprocessingKwargs2D": {
"additionalProperties": false,
"properties": {
"prob_threshold": {
"description": "The probability threshold for object candidate selection.",
"title": "Prob Threshold",
"type": "number"
},
"nms_threshold": {
"description": "The IoU threshold for non-maximum suppression.",
"title": "Nms Threshold",
"type": "number"
},
"n_rays": {
"description": "Number of radial lines (rays) cast from the center of an object to its boundary.",
"title": "N Rays",
"type": "integer"
},
"grid": {
"description": "Grid size of network predictions.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"title": "Grid",
"type": "array"
},
"b": {
"anyOf": [
{
"type": "integer"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
}
],
"type": "array"
}
],
"description": "Border region in which object probability is set to zero.",
"title": "B"
}
},
"required": [
"prob_threshold",
"nms_threshold",
"n_rays",
"grid",
"b"
],
"title": "model.v0_5.StardistPostprocessingKwargs2D",
"type": "object"
},
"StardistPostprocessingKwargs3D": {
"additionalProperties": false,
"properties": {
"prob_threshold": {
"description": "The probability threshold for object candidate selection.",
"title": "Prob Threshold",
"type": "number"
},
"nms_threshold": {
"description": "The IoU threshold for non-maximum suppression.",
"title": "Nms Threshold",
"type": "number"
},
"n_rays": {
"description": "Number of radial lines (rays) cast from the center of an object to its boundary.",
"title": "N Rays",
"type": "integer"
},
"grid": {
"description": "Grid size of network predictions.",
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
},
{
"type": "integer"
}
],
"title": "Grid",
"type": "array"
},
"b": {
"anyOf": [
{
"type": "integer"
},
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
}
],
"type": "array"
}
],
"description": "Border region in which object probability is set to zero.",
"title": "B"
},
"anisotropy": {
"description": "Anisotropy factors for 3D star-convex polyhedra, i.e. the physical pixel size along each spatial axis.",
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
],
"title": "Anisotropy",
"type": "array"
},
"overlap_label": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional label to apply to any area of overlapping predicted objects.",
"title": "Overlap Label"
}
},
"required": [
"prob_threshold",
"nms_threshold",
"n_rays",
"grid",
"b",
"anisotropy"
],
"title": "model.v0_5.StardistPostprocessingKwargs3D",
"type": "object"
},
"TimeOutputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.TimeOutputAxis",
"type": "object"
},
"TimeOutputAxisWithHalo": {
"additionalProperties": false,
"properties": {
"halo": {
"description": "The halo should be cropped from the output tensor to avoid boundary effects.\nIt is to be cropped from both sides, i.e. `size_after_crop = size - 2 * halo`.\nTo document a halo that is already cropped by the model use `size.offset` instead.",
"minimum": 1,
"title": "Halo",
"type": "integer"
},
"size": {
"$ref": "#/$defs/SizeReference",
"description": "reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
]
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"halo",
"size",
"type"
],
"title": "model.v0_5.TimeOutputAxisWithHalo",
"type": "object"
},
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
},
"ZeroMeanUnitVarianceDescr": {
"additionalProperties": false,
"description": "Subtract mean and divide by variance.\n\nExamples:\n Subtract tensor mean and variance\n - in YAML\n ```yaml\n preprocessing:\n - id: zero_mean_unit_variance\n ```\n - in Python\n >>> preprocessing = [ZeroMeanUnitVarianceDescr()]",
"properties": {
"id": {
"const": "zero_mean_unit_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ZeroMeanUnitVarianceKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.ZeroMeanUnitVarianceDescr",
"type": "object"
},
"ZeroMeanUnitVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ZeroMeanUnitVarianceDescr][]",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize each sample independently leave out the 'batch' axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"eps": {
"default": 1e-06,
"description": "epsilon for numeric stability: `out = (tensor - mean) / (std + eps)`.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
}
},
"title": "model.v0_5.ZeroMeanUnitVarianceKwargs",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"id": {
"default": "output",
"description": "Output tensor id.\nNo duplicates are allowed across all inputs and outputs.",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"description": {
"default": "",
"description": "free text description",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"axes": {
"description": "tensor axes",
"items": {
"discriminator": {
"mapping": {
"batch": "#/$defs/BatchAxis",
"channel": "#/$defs/ChannelAxis",
"index": "#/$defs/IndexOutputAxis",
"space": {
"oneOf": [
{
"$ref": "#/$defs/SpaceOutputAxis"
},
{
"$ref": "#/$defs/SpaceOutputAxisWithHalo"
}
]
},
"time": {
"oneOf": [
{
"$ref": "#/$defs/TimeOutputAxis"
},
{
"$ref": "#/$defs/TimeOutputAxisWithHalo"
}
]
}
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/BatchAxis"
},
{
"$ref": "#/$defs/ChannelAxis"
},
{
"$ref": "#/$defs/IndexOutputAxis"
},
{
"oneOf": [
{
"$ref": "#/$defs/TimeOutputAxis"
},
{
"$ref": "#/$defs/TimeOutputAxisWithHalo"
}
]
},
{
"oneOf": [
{
"$ref": "#/$defs/SpaceOutputAxis"
},
{
"$ref": "#/$defs/SpaceOutputAxisWithHalo"
}
]
}
]
},
"minItems": 1,
"title": "Axes",
"type": "array"
},
"test_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "An example tensor to use for testing.\nUsing the model with the test input tensors is expected to yield the test output tensors.\nEach test tensor has be a an ndarray in the\n[numpy.lib file format](https://numpy.org/doc/stable/reference/generated/numpy.lib.format.html#module-numpy.lib.format).\nThe file extension must be '.npy'."
},
"sample_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "A sample tensor to illustrate a possible input/output for the model,\nThe sample image primarily serves to inform a human user about an example use case\nand is typically stored as .hdf5, .png or .tiff.\nIt has to be readable by the [imageio library](https://imageio.readthedocs.io/en/stable/formats/index.html#supported-formats)\n(numpy's `.npy` format is not supported).\nThe image dimensionality has to match the number of axes specified in this tensor description."
},
"data": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
},
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
}
]
},
"minItems": 1,
"type": "array"
}
],
"default": {
"type": "float32",
"range": [
null,
null
],
"unit": "arbitrary unit",
"scale": 1.0,
"offset": null
},
"description": "Description of the tensor's data values, optionally per channel.\nIf specified per channel, the data `type` needs to match across channels.",
"title": "Data"
},
"postprocessing": {
"description": "Description of how this output should be postprocessed.\n\nnote: `postprocessing` always ends with an 'ensure_dtype' operation.\n If not given this is added to cast to this tensor's `data.type`.",
"items": {
"discriminator": {
"mapping": {
"binarize": "#/$defs/BinarizeDescr",
"cellpose_flow_dynamics": "#/$defs/CellposeFlowDynamicsDescr",
"clip": "#/$defs/ClipDescr",
"custom": "#/$defs/CustomProcessingDescr",
"ensure_dtype": "#/$defs/EnsureDtypeDescr",
"fixed_zero_mean_unit_variance": "#/$defs/FixedZeroMeanUnitVarianceDescr",
"scale_linear": "#/$defs/ScaleLinearDescr",
"scale_mean_variance": "#/$defs/ScaleMeanVarianceDescr",
"scale_range": "#/$defs/ScaleRangeDescr",
"sigmoid": "#/$defs/SigmoidDescr",
"softmax": "#/$defs/SoftmaxDescr",
"stardist_postprocessing": "#/$defs/StardistPostprocessingDescr",
"zero_mean_unit_variance": "#/$defs/ZeroMeanUnitVarianceDescr"
},
"propertyName": "id"
},
"oneOf": [
{
"$ref": "#/$defs/BinarizeDescr"
},
{
"$ref": "#/$defs/CellposeFlowDynamicsDescr"
},
{
"$ref": "#/$defs/ClipDescr"
},
{
"$ref": "#/$defs/CustomProcessingDescr"
},
{
"$ref": "#/$defs/EnsureDtypeDescr"
},
{
"$ref": "#/$defs/FixedZeroMeanUnitVarianceDescr"
},
{
"$ref": "#/$defs/ScaleLinearDescr"
},
{
"$ref": "#/$defs/ScaleMeanVarianceDescr"
},
{
"$ref": "#/$defs/ScaleRangeDescr"
},
{
"$ref": "#/$defs/SigmoidDescr"
},
{
"$ref": "#/$defs/SoftmaxDescr"
},
{
"$ref": "#/$defs/StardistPostprocessingDescr"
},
{
"$ref": "#/$defs/ZeroMeanUnitVarianceDescr"
}
]
},
"title": "Postprocessing",
"type": "array"
}
},
"required": [
"axes"
],
"title": "model.v0_5.OutputTensorDescr",
"type": "object"
}
Fields:
-
description(Annotated[str, MaxLen(128)]) -
axes(NotEmpty[Sequence[IO_AxisT]]) -
test_tensor(FAIR[FileDescr_package | None]) -
sample_tensor(FAIR[FileDescr_package | None]) -
data(TensorDataDescr | NotEmpty[Sequence[TensorDataDescr]]) -
id(TensorId) -
postprocessing(list[PostprocessingDescr])
Validators:
-
_validate_axes→axes -
_validate_sample_tensor -
_check_data_type_across_channels→data -
_check_data_matches_channelaxis -
_validate_postprocessing_kwargs
data
pydantic-field
¤
data: TensorDataDescr | NotEmpty[Sequence[TensorDataDescr]]
Description of the tensor's data values, optionally per channel.
If specified per channel, the data type needs to match across channels.
dtype
property
¤
dtype: Literal[
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool",
]
dtype as specified under data.type or data[i].type
id
pydantic-field
¤
id: TensorId
Output tensor id. No duplicates are allowed across all inputs and outputs.
postprocessing
pydantic-field
¤
postprocessing: list[PostprocessingDescr]
Description of how this output should be postprocessed.
postprocessing always ends with an 'ensure_dtype' operation.
If not given this is added to cast to this tensor's data.type.
sample_tensor
pydantic-field
¤
sample_tensor: FAIR[FileDescr_package | None] = None
A sample tensor to illustrate a possible input/output for the model,
The sample image primarily serves to inform a human user about an example use case
and is typically stored as .hdf5, .png or .tiff.
It has to be readable by the imageio library
(numpy's .npy format is not supported).
The image dimensionality has to match the number of axes specified in this tensor description.
test_tensor
pydantic-field
¤
test_tensor: FAIR[FileDescr_package | None] = None
An example tensor to use for testing. Using the model with the test input tensors is expected to yield the test output tensors. Each test tensor has be a an ndarray in the numpy.lib file format. The file extension must be '.npy'.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get_axis_sizes_for_array
¤
get_axis_sizes_for_array(
array: NDArray[Any],
) -> dict[AxisId, int]
Source code in src/bioimageio/spec/model/v0_5.py
1937 1938 1939 1940 1941 1942 1943 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ParameterizedSize
pydantic-model
¤
Bases: Node
Describes a range of valid tensor axis sizes as size = min + n*step.
- min and step are given by the model description.
- All blocksize paramters n = 0,1,2,... yield a valid
size. - A greater blocksize paramter n = 0,1,2,... results in a greater size. This allows to adjust the axis size more generically.
Show JSON schema:
{
"additionalProperties": false,
"description": "Describes a range of valid tensor axis sizes as `size = min + n*step`.\n\n- **min** and **step** are given by the model description.\n- All blocksize paramters n = 0,1,2,... yield a valid `size`.\n- A greater blocksize paramter n = 0,1,2,... results in a greater **size**.\n This allows to adjust the axis size more generically.",
"properties": {
"min": {
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"step": {
"exclusiveMinimum": 0,
"title": "Step",
"type": "integer"
}
},
"required": [
"min",
"step"
],
"title": "model.v0_5.ParameterizedSize",
"type": "object"
}
Fields:
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get_n
¤
get_n(s: int) -> ParameterizedSize_N
return smallest n parameterizing a size greater or equal than s
Source code in src/bioimageio/spec/model/v0_5.py
351 352 353 | |
get_size
¤
get_size(n: ParameterizedSize_N) -> int
Source code in src/bioimageio/spec/model/v0_5.py
348 349 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_size
¤
validate_size(size: int, msg_prefix: str = '') -> int
Source code in src/bioimageio/spec/model/v0_5.py
335 336 337 338 339 340 341 342 343 344 345 346 | |
PytorchStateDictWeightsDescr
pydantic-model
¤
Bases: WeightsEntryDescrBase
Show JSON schema:
{
"$defs": {
"ArchitectureFromFileDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Architecture source file",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"callable": {
"description": "Identifier of the callable that returns a torch.nn.Module instance.",
"examples": [
"MyNetworkClass",
"get_my_model"
],
"minLength": 1,
"title": "Identifier",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `callable`",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"source",
"callable"
],
"title": "model.v0_5.ArchitectureFromFileDescr",
"type": "object"
},
"ArchitectureFromLibraryDescr": {
"additionalProperties": false,
"properties": {
"callable": {
"description": "Identifier of the callable that returns a torch.nn.Module instance.",
"examples": [
"MyNetworkClass",
"get_my_model"
],
"minLength": 1,
"title": "Identifier",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `callable`",
"title": "Kwargs",
"type": "object"
},
"import_from": {
"description": "Where to import the callable from, i.e. `from <import_from> import <callable>`",
"title": "Import From",
"type": "string"
}
},
"required": [
"callable",
"import_from"
],
"title": "model.v0_5.ArchitectureFromLibraryDescr",
"type": "object"
},
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"FileDescr": {
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
},
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"architecture": {
"anyOf": [
{
"$ref": "#/$defs/ArchitectureFromFileDescr"
},
{
"$ref": "#/$defs/ArchitectureFromLibraryDescr"
}
],
"title": "Architecture"
},
"pytorch_version": {
"$ref": "#/$defs/Version",
"description": "Version of the PyTorch library used.\nIf `architecture.depencencies` is specified it has to include pytorch and any version pinning has to be compatible."
},
"dependencies": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "environment.yaml"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Custom depencies beyond pytorch described in a Conda environment file.\nAllows to specify custom dependencies, see conda docs:\n- [Exporting an environment file across platforms](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-an-environment-file-across-platforms)\n- [Creating an environment file manually](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-file-manually)\n\nThe conda environment file should include pytorch and any version pinning has to be compatible with\n**pytorch_version**."
},
"strict": {
"default": true,
"description": "Whether to allow missing or unexpected keys or to be strict about the architecture matching the state dict weights.",
"title": "Strict",
"type": "boolean"
}
},
"required": [
"source",
"architecture",
"pytorch_version"
],
"title": "model.v0_5.PytorchStateDictWeightsDescr",
"type": "object"
}
Fields:
-
source(Annotated[FileSource, AfterValidator(wo_special_file_name)]) -
sha256(Sha256 | None) -
authors(list[Author] | None) -
parent(Annotated[WeightsFormat | None, Field(examples=['pytorch_state_dict'])]) -
comment(str) -
architecture(ArchitectureFromFileDescr | ArchitectureFromLibraryDescr) -
pytorch_version(Version) -
dependencies(FileDescr_dependencies | None) -
strict(bool)
Validators:
-
_validate
architecture
pydantic-field
¤
architecture: (
ArchitectureFromFileDescr | ArchitectureFromLibraryDescr
)
authors
pydantic-field
¤
authors: list[Author] | None = None
Authors
Either the person(s) that have trained this model resulting in the original weights file.
(If this is the initial weights entry, i.e. it does not have a parent)
Or the person(s) who have converted the weights to this weights format.
(If this is a child weight, i.e. it has a parent field)
comment
pydantic-field
¤
comment: str = ''
A comment about this weights entry, for example how these weights were created.
dependencies
pydantic-field
¤
dependencies: FileDescr_dependencies | None = None
Custom depencies beyond pytorch described in a Conda environment file. Allows to specify custom dependencies, see conda docs: - Exporting an environment file across platforms - Creating an environment file manually
The conda environment file should include pytorch and any version pinning has to be compatible with pytorch_version.
parent
pydantic-field
¤
parent: Annotated[
WeightsFormat | None,
Field(examples=["pytorch_state_dict"]),
] = None
The source weights these weights were converted from.
For example, if a model's weights were converted from the pytorch_state_dict format to torchscript,
The pytorch_state_dict weights entry has no parent and is the parent of the torchscript weights.
All weight entries except one (the initial set of weights resulting from training the model),
need to have this field.
pytorch_version
pydantic-field
¤
pytorch_version: Version
Version of the PyTorch library used.
If architecture.depencencies is specified it has to include pytorch and any version pinning has to be compatible.
source
pydantic-field
¤
source: Annotated[
FileSource, AfterValidator(wo_special_file_name)
]
Source of the weights file.
strict
pydantic-field
¤
strict: bool = True
Whether to allow missing or unexpected keys or to be strict about the architecture matching the state dict weights.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
ReflectPadding
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"mode": {
"const": "reflect",
"default": "reflect",
"title": "Mode",
"type": "string"
}
},
"title": "model.v0_5.ReflectPadding",
"type": "object"
}
Fields:
-
mode(Literal['reflect'])
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
RelativeFilePath
¤
Bases: RelativePathBase[Union[AbsoluteFilePath, HttpUrl, ZipPath]]
flowchart TD
bioimageio.spec.model.v0_5.RelativeFilePath[RelativeFilePath]
bioimageio.spec._internal.io.RelativePathBase[RelativePathBase]
bioimageio.spec._internal.io.RelativePathBase --> bioimageio.spec.model.v0_5.RelativeFilePath
click bioimageio.spec.model.v0_5.RelativeFilePath href "" "bioimageio.spec.model.v0_5.RelativeFilePath"
click bioimageio.spec._internal.io.RelativePathBase href "" "bioimageio.spec._internal.io.RelativePathBase"
A path relative to the rdf.yaml file (also if the RDF source is a URL).
-
v0_2NotebookSource -
v0_3NotebookSource -
API Reference
commonFileSource
Methods:
| Name | Description |
|---|---|
__repr__ |
|
__str__ |
|
absolute |
get the absolute path/url |
format |
|
get_absolute |
|
model_post_init |
add validation @private |
Attributes:
| Name | Type | Description |
|---|---|---|
parent |
RelativeDirectory
|
|
path |
PurePath
|
|
suffix |
|
__repr__
¤
__repr__() -> str
Source code in src/bioimageio/spec/_internal/io.py
156 157 | |
__str__
¤
__str__() -> str
Source code in src/bioimageio/spec/_internal/io.py
153 154 | |
absolute
¤
absolute() -> AbsolutePathT
get the absolute path/url
(resolved at time of initialization with the root of the ValidationContext)
Source code in src/bioimageio/spec/_internal/io.py
131 132 133 134 135 136 137 138 | |
format
¤
format() -> str
Source code in src/bioimageio/spec/_internal/io.py
159 160 161 | |
get_absolute
¤
get_absolute(
root: RootHttpUrl | Path | pydantic.AnyUrl | ZipFile,
) -> AbsoluteFilePath | HttpUrl | ZipPath
Source code in src/bioimageio/spec/_internal/io.py
221 222 223 224 225 226 227 228 229 230 231 232 233 | |
model_post_init
¤
model_post_init(__context: Any) -> None
add validation @private
Source code in src/bioimageio/spec/_internal/io.py
214 215 216 217 218 219 | |
ReproducibilityTolerance
pydantic-model
¤
Bases: _ReproducibilityToleranceBase[RelativeTolerance, AbsoluteTolerance]
Show JSON schema:
{
"additionalProperties": true,
"properties": {
"mismatched_elements_per_million": {
"default": 100,
"description": "Maximum number of mismatched elements/pixels per million to tolerate.",
"maximum": 30000,
"minimum": 0,
"title": "Mismatched Elements Per Million",
"type": "integer"
},
"weights_formats": {
"default": [],
"description": "Limits the weights formats these details apply to.",
"items": {
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
"title": "Weights Formats",
"type": "array"
},
"relative_tolerance": {
"default": 0.001,
"description": "Maximum relative tolerance of reproduced test tensor.\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"maximum": 0.01,
"minimum": 0,
"title": "Relative Tolerance",
"type": "number"
},
"absolute_tolerance": {
"default": 0.001,
"description": "Maximum absolute tolerance of reproduced test tensor.\n\nThe `absolute_tolerance` may not be greater than 1% of the maximum absolute value of the test tensor\n(this serves to prevent false positives in the presence of very small numbers).\nNeeds to be 0 for discrete (integer and boolean) outputs.",
"minimum": 0,
"title": "Absolute Tolerance",
"type": "number"
},
"output_ids": {
"default": [],
"description": "Limits the output tensor IDs these reproducibility details apply to.\n\nIf empty, the reproducibility details apply to all outputs.",
"items": {
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"title": "Output Ids",
"type": "array"
}
},
"title": "model.v0_5.ReproducibilityTolerance",
"type": "object"
}
Fields:
-
mismatched_elements_per_million(MismatchedElementsPerMillion) -
weights_formats(Sequence[WeightsFormat]) -
output_ids(Sequence[TensorId]) -
relative_tolerance(RelativeTolerance) -
absolute_tolerance(AbsoluteTolerance)
absolute_tolerance
pydantic-field
¤
absolute_tolerance: AbsoluteTolerance = 0.001
Maximum absolute tolerance of reproduced test tensor.
The absolute_tolerance may not be greater than 1% of the maximum absolute value of the test tensor
(this serves to prevent false positives in the presence of very small numbers).
Needs to be 0 for discrete (integer and boolean) outputs.
mismatched_elements_per_million
pydantic-field
¤
mismatched_elements_per_million: MismatchedElementsPerMillion = 100
Maximum number of mismatched elements/pixels per million to tolerate.
output_ids
pydantic-field
¤
output_ids: Sequence[TensorId] = ()
Limits the output tensor IDs these reproducibility details apply to.
If empty, the reproducibility details apply to all outputs.
relative_tolerance
pydantic-field
¤
relative_tolerance: RelativeTolerance = 0.001
Maximum relative tolerance of reproduced test tensor. Needs to be 0 for discrete (integer and boolean) outputs.
weights_formats
pydantic-field
¤
weights_formats: Sequence[WeightsFormat] = ()
Limits the weights formats these details apply to.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
serialize
¤
serialize(
handler: SerializerFunctionWrapHandler,
) -> dict[str, Any]
explicitly serialize tolerance values
(even if they are default values and exclude_defaults=True).
Source code in src/bioimageio/spec/model/v0_5.py
3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 | |
ResourceId
¤
Bases: ValidatedString
flowchart TD
bioimageio.spec.model.v0_5.ResourceId[ResourceId]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.model.v0_5.ResourceId
click bioimageio.spec.model.v0_5.ResourceId href "" "bioimageio.spec.model.v0_5.ResourceId"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
root_model: type[RootModel[Any]] = RootModel[
Annotated[
NotEmpty[str],
RestrictCharacters(
string.ascii_lowercase + string.digits + "_-/."
),
annotated_types.Predicate(
lambda s: (
not (
s.startswith("/") or s.endswith("/")
)
)
),
]
]
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
RunMode
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"name": {
"anyOf": [
{
"const": "deepimagej",
"type": "string"
},
{
"type": "string"
}
],
"description": "Run mode name",
"title": "Name"
},
"kwargs": {
"additionalProperties": true,
"description": "Run mode specific key word arguments",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"name"
],
"title": "model.v0_4.RunMode",
"type": "object"
}
Fields:
-
name(Annotated[KnownRunMode | str, warn(KnownRunMode, "Unknown run mode '{value}'.")]) -
kwargs(dict[str, Any])
name
pydantic-field
¤
name: Annotated[
KnownRunMode | str,
warn(KnownRunMode, "Unknown run mode '{value}'."),
]
Run mode name
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ScaleLinearAlongAxisKwargs
pydantic-model
¤
Bases: KwargsNode
Key word arguments for ScaleLinearDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"axis": {
"description": "The axis of gain and offset values.",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"gain": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 0.0,
"description": "additive term",
"title": "Offset"
}
},
"required": [
"axis"
],
"title": "model.v0_5.ScaleLinearAlongAxisKwargs",
"type": "object"
}
Fields:
-
axis(Annotated[NonBatchAxisId, Field(examples=['channel'])]) -
gain(float | NotEmpty[list[float]]) -
offset(float | NotEmpty[list[float]])
Validators:
-
_validate
axis
pydantic-field
¤
axis: Annotated[NonBatchAxisId, Field(examples=["channel"])]
The axis of gain and offset values.
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ScaleLinearDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Fixed linear scaling.
Examples:
- Scale with scalar gain and offset
- in YAML
preprocessing: - id: scale_linear kwargs: gain: 2.0 offset: 3.0 - in Python:
preprocessing = [ ... ScaleLinearDescr(kwargs=ScaleLinearKwargs(gain= 2.0, offset=3.0)) ... ]
- Independent scaling along an axis
- in YAML
preprocessing: - id: scale_linear kwargs: axis: 'channel' gain: [1.0, 2.0, 3.0] - in Python:
preprocessing = [ ... ScaleLinearDescr( ... kwargs=ScaleLinearAlongAxisKwargs( ... axis=AxisId("channel"), ... gain=[1.0, 2.0, 3.0], ... ) ... ) ... ]
Show JSON schema:
{
"$defs": {
"ScaleLinearAlongAxisKwargs": {
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"axis": {
"description": "The axis of gain and offset values.",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"gain": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
}
],
"default": 0.0,
"description": "additive term",
"title": "Offset"
}
},
"required": [
"axis"
],
"title": "model.v0_5.ScaleLinearAlongAxisKwargs",
"type": "object"
},
"ScaleLinearKwargs": {
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"gain": {
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain",
"type": "number"
},
"offset": {
"default": 0.0,
"description": "additive term",
"title": "Offset",
"type": "number"
}
},
"title": "model.v0_5.ScaleLinearKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "Fixed linear scaling.\n\nExamples:\n 1. Scale with scalar gain and offset\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_linear\n kwargs:\n gain: 2.0\n offset: 3.0\n ```\n - in Python:\n\n >>> preprocessing = [\n ... ScaleLinearDescr(kwargs=ScaleLinearKwargs(gain= 2.0, offset=3.0))\n ... ]\n\n 2. Independent scaling along an axis\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_linear\n kwargs:\n axis: 'channel'\n gain: [1.0, 2.0, 3.0]\n ```\n - in Python:\n\n >>> preprocessing = [\n ... ScaleLinearDescr(\n ... kwargs=ScaleLinearAlongAxisKwargs(\n ... axis=AxisId(\"channel\"),\n ... gain=[1.0, 2.0, 3.0],\n ... )\n ... )\n ... ]",
"properties": {
"id": {
"const": "scale_linear",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/ScaleLinearKwargs"
},
{
"$ref": "#/$defs/ScaleLinearAlongAxisKwargs"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ScaleLinearDescr",
"type": "object"
}
Fields:
-
id(Literal['scale_linear']) -
kwargs(ScaleLinearKwargs | ScaleLinearAlongAxisKwargs)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ScaleLinearKwargs
pydantic-model
¤
Bases: KwargsNode
Key word arguments for ScaleLinearDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "Key word arguments for [ScaleLinearDescr][]",
"properties": {
"gain": {
"default": 1.0,
"description": "multiplicative factor",
"title": "Gain",
"type": "number"
},
"offset": {
"default": 0.0,
"description": "additive term",
"title": "Offset",
"type": "number"
}
},
"title": "model.v0_5.ScaleLinearKwargs",
"type": "object"
}
Fields:
Validators:
-
_validate
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ScaleMeanVarianceDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Scale a tensor's data distribution to match another tensor's mean/std.
out = (tensor - mean) / (std + eps) * (ref_std + eps) + ref_mean.
Show JSON schema:
{
"$defs": {
"ScaleMeanVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ScaleMeanVarianceKwargs][]",
"properties": {
"reference_tensor": {
"description": "ID of unprocessed input tensor to match.",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize samples independently, leave out the 'batch' axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"eps": {
"default": 1e-06,
"description": "Epsilon for numeric stability:\n`out = (tensor - mean) / (std + eps) * (ref_std + eps) + ref_mean.`",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
}
},
"required": [
"reference_tensor"
],
"title": "model.v0_5.ScaleMeanVarianceKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "Scale a tensor's data distribution to match another tensor's mean/std.\n`out = (tensor - mean) / (std + eps) * (ref_std + eps) + ref_mean.`",
"properties": {
"id": {
"const": "scale_mean_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ScaleMeanVarianceKwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.ScaleMeanVarianceDescr",
"type": "object"
}
Fields:
-
id(Literal['scale_mean_variance']) -
kwargs(ScaleMeanVarianceKwargs)
implemented_id
class-attribute
¤
implemented_id: Literal["scale_mean_variance"] = (
"scale_mean_variance"
)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ScaleMeanVarianceKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for ScaleMeanVarianceKwargs
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [ScaleMeanVarianceKwargs][]",
"properties": {
"reference_tensor": {
"description": "ID of unprocessed input tensor to match.",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize samples independently, leave out the 'batch' axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"eps": {
"default": 1e-06,
"description": "Epsilon for numeric stability:\n`out = (tensor - mean) / (std + eps) * (ref_std + eps) + ref_mean.`",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
}
},
"required": [
"reference_tensor"
],
"title": "model.v0_5.ScaleMeanVarianceKwargs",
"type": "object"
}
Fields:
-
reference_tensor(TensorId) -
axes(Annotated[Sequence[AxisId] | None, Field(examples=[('batch', 'x', 'y')])]) -
eps(Annotated[float, Interval(gt=0, le=0.1)])
axes
pydantic-field
¤
The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.
For example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')
resulting in a tensor of equal shape normalized per channel, specify axes=('batch', 'x', 'y').
To normalize samples independently, leave out the 'batch' axis.
Default: Scale all axes jointly.
eps
pydantic-field
¤
eps: Annotated[float, Interval(gt=0, le=0.1)] = 1e-06
Epsilon for numeric stability:
out = (tensor - mean) / (std + eps) * (ref_std + eps) + ref_mean.
reference_tensor
pydantic-field
¤
reference_tensor: TensorId
ID of unprocessed input tensor to match.
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ScaleRangeDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Scale with percentiles.
Examples:
-
Scale linearly to map 5th percentile to 0 and 99.8th percentile to 1.0
- in YAML
preprocessing: - id: scale_range kwargs: axes: ['y', 'x'] max_percentile: 99.8 min_percentile: 5.0 - in Python
>>> preprocessing = [ ... ScaleRangeDescr( ... kwargs=ScaleRangeKwargs( ... axes= (AxisId('y'), AxisId('x')), ... max_percentile= 99.8, ... min_percentile= 5.0, ... ) ... ) ... ] - in YAML
-
Combine the above scaling with additional clipping to clip values outside the range given by the percentiles.
- in YAML
preprocessing: - id: scale_range kwargs: axes: ['y', 'x'] max_percentile: 99.8 min_percentile: 5.0 - id: clip kwargs: min: 0.0 max: 1.0 - in Python
>>> preprocessing = [ ... ScaleRangeDescr( ... kwargs=ScaleRangeKwargs( ... axes= (AxisId('y'), AxisId('x')), ... max_percentile= 99.8, ... min_percentile= 5.0, ... ) ... ), ... ClipDescr( ... kwargs=ClipKwargs( ... min=0.0, ... max=1.0, ... ) ... ), ... ] - in YAML
Show JSON schema:
{
"$defs": {
"ScaleRangeKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ScaleRangeDescr][]\n\nFor `min_percentile`=0.0 (the default) and `max_percentile`=100 (the default)\nthis processing step normalizes data to the [0, 1] intervall.\nFor other percentiles the normalized values will partially be outside the [0, 1]\nintervall. Use `ScaleRange` followed by `ClipDescr` if you want to limit the\nnormalized values to a range.",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute the min/max percentile value.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize samples independently, leave out the \"batch\" axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"min_percentile": {
"default": 0.0,
"description": "The lower percentile used to determine the value to align with zero.",
"exclusiveMaximum": 100,
"minimum": 0,
"title": "Min Percentile",
"type": "number"
},
"max_percentile": {
"default": 100.0,
"description": "The upper percentile used to determine the value to align with one.\nHas to be bigger than `min_percentile`.\nThe range is 1 to 100 instead of 0 to 100 to avoid mistakenly\naccepting percentiles specified in the range 0.0 to 1.0.",
"exclusiveMinimum": 1,
"maximum": 100,
"title": "Max Percentile",
"type": "number"
},
"eps": {
"default": 1e-06,
"description": "Epsilon for numeric stability.\n`out = (tensor - v_lower) / (v_upper - v_lower + eps)`;\nwith `v_lower,v_upper` values at the respective percentiles.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
},
"reference_tensor": {
"anyOf": [
{
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the unprocessed input tensor to compute the percentiles from.\nDefault: The tensor itself.",
"title": "Reference Tensor"
}
},
"title": "model.v0_5.ScaleRangeKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "Scale with percentiles.\n\nExamples:\n1. Scale linearly to map 5th percentile to 0 and 99.8th percentile to 1.0\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n ```\n - in Python\n\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... )\n ... ]\n\n 2. Combine the above scaling with additional clipping to clip values outside the range given by the percentiles.\n - in YAML\n ```yaml\n preprocessing:\n - id: scale_range\n kwargs:\n axes: ['y', 'x']\n max_percentile: 99.8\n min_percentile: 5.0\n - id: clip\n kwargs:\n min: 0.0\n max: 1.0\n ```\n - in Python\n\n >>> preprocessing = [\n ... ScaleRangeDescr(\n ... kwargs=ScaleRangeKwargs(\n ... axes= (AxisId('y'), AxisId('x')),\n ... max_percentile= 99.8,\n ... min_percentile= 5.0,\n ... )\n ... ),\n ... ClipDescr(\n ... kwargs=ClipKwargs(\n ... min=0.0,\n ... max=1.0,\n ... )\n ... ),\n ... ]",
"properties": {
"id": {
"const": "scale_range",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ScaleRangeKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.ScaleRangeDescr",
"type": "object"
}
Fields:
-
id(Literal['scale_range']) -
kwargs(ScaleRangeKwargs)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ScaleRangeKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for ScaleRangeDescr
For min_percentile=0.0 (the default) and max_percentile=100 (the default)
this processing step normalizes data to the [0, 1] intervall.
For other percentiles the normalized values will partially be outside the [0, 1]
intervall. Use ScaleRange followed by ClipDescr if you want to limit the
normalized values to a range.
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [ScaleRangeDescr][]\n\nFor `min_percentile`=0.0 (the default) and `max_percentile`=100 (the default)\nthis processing step normalizes data to the [0, 1] intervall.\nFor other percentiles the normalized values will partially be outside the [0, 1]\nintervall. Use `ScaleRange` followed by `ClipDescr` if you want to limit the\nnormalized values to a range.",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute the min/max percentile value.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize samples independently, leave out the \"batch\" axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"min_percentile": {
"default": 0.0,
"description": "The lower percentile used to determine the value to align with zero.",
"exclusiveMaximum": 100,
"minimum": 0,
"title": "Min Percentile",
"type": "number"
},
"max_percentile": {
"default": 100.0,
"description": "The upper percentile used to determine the value to align with one.\nHas to be bigger than `min_percentile`.\nThe range is 1 to 100 instead of 0 to 100 to avoid mistakenly\naccepting percentiles specified in the range 0.0 to 1.0.",
"exclusiveMinimum": 1,
"maximum": 100,
"title": "Max Percentile",
"type": "number"
},
"eps": {
"default": 1e-06,
"description": "Epsilon for numeric stability.\n`out = (tensor - v_lower) / (v_upper - v_lower + eps)`;\nwith `v_lower,v_upper` values at the respective percentiles.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
},
"reference_tensor": {
"anyOf": [
{
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ID of the unprocessed input tensor to compute the percentiles from.\nDefault: The tensor itself.",
"title": "Reference Tensor"
}
},
"title": "model.v0_5.ScaleRangeKwargs",
"type": "object"
}
Fields:
-
axes(Annotated[Sequence[AxisId] | None, Field(examples=[('batch', 'x', 'y')])]) -
min_percentile(Annotated[float, Interval(ge=0, lt=100)]) -
max_percentile(Annotated[float, Interval(gt=1, le=100)]) -
eps(Annotated[float, Interval(gt=0, le=0.1)]) -
reference_tensor(TensorId | None)
Validators:
axes
pydantic-field
¤
The subset of axes to normalize jointly, i.e. axes to reduce to compute the min/max percentile value.
For example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')
resulting in a tensor of equal shape normalized per channel, specify axes=('batch', 'x', 'y').
To normalize samples independently, leave out the "batch" axis.
Default: Scale all axes jointly.
eps
pydantic-field
¤
eps: Annotated[float, Interval(gt=0, le=0.1)] = 1e-06
Epsilon for numeric stability.
out = (tensor - v_lower) / (v_upper - v_lower + eps);
with v_lower,v_upper values at the respective percentiles.
max_percentile
pydantic-field
¤
max_percentile: Annotated[
float, Interval(gt=1, le=100)
] = 100.0
The upper percentile used to determine the value to align with one.
Has to be bigger than min_percentile.
The range is 1 to 100 instead of 0 to 100 to avoid mistakenly
accepting percentiles specified in the range 0.0 to 1.0.
min_percentile
pydantic-field
¤
min_percentile: Annotated[
float, Interval(ge=0, lt=100)
] = 0.0
The lower percentile used to determine the value to align with zero.
reference_tensor
pydantic-field
¤
reference_tensor: TensorId | None = None
ID of the unprocessed input tensor to compute the percentiles from. Default: The tensor itself.
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
min_smaller_max
pydantic-validator
¤
min_smaller_max(
value: float, info: ValidationInfo
) -> float
Source code in src/bioimageio/spec/model/v0_5.py
1638 1639 1640 1641 1642 1643 1644 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
Sha256
¤
Bases: ValidatedString
flowchart TD
bioimageio.spec.model.v0_5.Sha256[Sha256]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.model.v0_5.Sha256
click bioimageio.spec.model.v0_5.Sha256 href "" "bioimageio.spec.model.v0_5.Sha256"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
A SHA-256 hash value
-
API Reference
utilsget_sha256
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
root_model: type[RootModel[Any]] = RootModel[
Annotated[
str,
StringConstraints(
strip_whitespace=True,
to_lower=True,
min_length=64,
max_length=64,
),
]
]
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
SiUnit
¤
Bases: ValidatedString
flowchart TD
bioimageio.spec.model.v0_5.SiUnit[SiUnit]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec.model.v0_5.SiUnit
click bioimageio.spec.model.v0_5.SiUnit href "" "bioimageio.spec.model.v0_5.SiUnit"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
An SI unit
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
root_model: type[RootModel[Any]] = RootModel[
Annotated[
str,
StringConstraints(
min_length=1, pattern=SI_UNIT_REGEX
),
BeforeValidator(_normalize_multiplication),
]
]
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
SigmoidDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
The logistic sigmoid function, a.k.a. expit function.
Examples:
- in YAML
postprocessing: - id: sigmoid -
in Python:
>>> postprocessing = [SigmoidDescr()]
Show JSON schema:
{
"additionalProperties": false,
"description": "The logistic sigmoid function, a.k.a. expit function.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: sigmoid\n ```\n- in Python:\n\n >>> postprocessing = [SigmoidDescr()]",
"properties": {
"id": {
"const": "sigmoid",
"title": "Id",
"type": "string"
}
},
"required": [
"id"
],
"title": "model.v0_5.SigmoidDescr",
"type": "object"
}
Fields:
-
id(Literal['sigmoid'])
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
SizeReference
pydantic-model
¤
Bases: Node
A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.
axis.size = reference.size * reference.scale / axis.scale + offset
Note:
1. The axis and the referenced axis need to have the same unit (or no unit).
2. Batch axes may not be referenced.
3. Fractions are rounded down.
4. If the reference axis is concatenable the referencing axis is assumed to be
concatenable as well with the same block order.
Example:
An unisotropic input image of wh=10049 pixels depicts a phsical space of 200196mm².
Let's assume that we want to express the image height h in relation to its width w
instead of only accepting input images of exactly 10049 pixels
(for example to express a range of valid image shapes by parametrizing w, see ParameterizedSize).
>>> w = SpaceInputAxis(id=AxisId("w"), size=100, unit="millimeter", scale=2)
>>> h = SpaceInputAxis(
... id=AxisId("h"),
... size=SizeReference(tensor_id=TensorId("input"), axis_id=AxisId("w"), offset=-1),
... unit="millimeter",
... scale=4,
... )
>>> print(h.size.get_size(h, w))
49
⇒ h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49
Show JSON schema:
{
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
Fields:
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get_size
¤
get_size(
axis: ChannelAxis
| IndexInputAxis
| IndexOutputAxis
| TimeInputAxis
| SpaceInputAxis
| TimeOutputAxis
| TimeOutputAxisWithHalo
| SpaceOutputAxis
| SpaceOutputAxisWithHalo,
ref_axis: ChannelAxis
| IndexInputAxis
| IndexOutputAxis
| TimeInputAxis
| SpaceInputAxis
| TimeOutputAxis
| TimeOutputAxisWithHalo
| SpaceOutputAxis
| SpaceOutputAxisWithHalo,
n: ParameterizedSize_N = 0,
ref_size: int | None = None,
)
Compute the concrete size for a given axis and its reference axis.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
ChannelAxis | IndexInputAxis | IndexOutputAxis | TimeInputAxis | SpaceInputAxis | TimeOutputAxis | TimeOutputAxisWithHalo | SpaceOutputAxis | SpaceOutputAxisWithHalo
|
The axis this SizeReference is the size of. |
required |
|
ChannelAxis | IndexInputAxis | IndexOutputAxis | TimeInputAxis | SpaceInputAxis | TimeOutputAxis | TimeOutputAxisWithHalo | SpaceOutputAxis | SpaceOutputAxisWithHalo
|
The reference axis to compute the size from. |
required |
|
ParameterizedSize_N
|
If the ref_axis is parameterized (of type |
0
|
|
int | None
|
Overwrite the reference size instead of deriving it from ref_axis (ref_axis.scale is still used; any given n is ignored). |
None
|
Source code in src/bioimageio/spec/model/v0_5.py
416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
SoftmaxDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
The softmax function.
Examples:
- in YAML
postprocessing: - id: softmax kwargs: axis: channel -
in Python:
>>> postprocessing = [SoftmaxDescr(kwargs=SoftmaxKwargs(axis=AxisId("channel")))]
Show JSON schema:
{
"$defs": {
"SoftmaxKwargs": {
"additionalProperties": false,
"description": "key word arguments for [SoftmaxDescr][]",
"properties": {
"axis": {
"default": "channel",
"description": "The axis to apply the softmax function along.\nNote:\n Defaults to 'channel' axis\n (which may not exist, in which case\n a different axis id has to be specified).",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"title": "model.v0_5.SoftmaxKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "The softmax function.\n\nExamples:\n- in YAML\n ```yaml\n postprocessing:\n - id: softmax\n kwargs:\n axis: channel\n ```\n- in Python:\n\n >>> postprocessing = [SoftmaxDescr(kwargs=SoftmaxKwargs(axis=AxisId(\"channel\")))]",
"properties": {
"id": {
"const": "softmax",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/SoftmaxKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.SoftmaxDescr",
"type": "object"
}
Fields:
-
id(Literal['softmax']) -
kwargs(SoftmaxKwargs)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
SoftmaxKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for SoftmaxDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [SoftmaxDescr][]",
"properties": {
"axis": {
"default": "channel",
"description": "The axis to apply the softmax function along.\nNote:\n Defaults to 'channel' axis\n (which may not exist, in which case\n a different axis id has to be specified).",
"examples": [
"channel"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
}
},
"title": "model.v0_5.SoftmaxKwargs",
"type": "object"
}
Fields:
-
axis(Annotated[NonBatchAxisId, Field(examples=['channel'])])
axis
pydantic-field
¤
axis: Annotated[
NonBatchAxisId, Field(examples=["channel"])
] = CHANNEL_AXIS_ID
The axis to apply the softmax function along. Note: Defaults to 'channel' axis (which may not exist, in which case a different axis id has to be specified).
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
SpaceAxisBase
pydantic-model
¤
Bases: AxisBase
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"type"
],
"title": "model.v0_5.SpaceAxisBase",
"type": "object"
}
Fields:
-
description(Annotated[str, MaxLen(128)]) -
type(Literal['space']) -
id(Annotated[NonBatchAxisId, Field(examples=['x', 'y', 'z'])]) -
unit(SpaceUnit | None) -
scale(Annotated[float, Gt(0)])
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
id: Annotated[
NonBatchAxisId, Field(examples=["x", "y", "z"])
] = DEFAULT_SPACE_AXIS_ID
An axis id unique across all axes of one tensor.
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
SpaceInputAxis
pydantic-model
¤
Bases: SpaceAxisBase, _WithInputAxisSize
Show JSON schema:
{
"$defs": {
"ParameterizedSize": {
"additionalProperties": false,
"description": "Describes a range of valid tensor axis sizes as `size = min + n*step`.\n\n- **min** and **step** are given by the model description.\n- All blocksize paramters n = 0,1,2,... yield a valid `size`.\n- A greater blocksize paramter n = 0,1,2,... results in a greater **size**.\n This allows to adjust the axis size more generically.",
"properties": {
"min": {
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"step": {
"exclusiveMinimum": 0,
"title": "Step",
"type": "integer"
}
},
"required": [
"min",
"step"
],
"title": "model.v0_5.ParameterizedSize",
"type": "object"
},
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.SpaceInputAxis",
"type": "object"
}
Fields:
-
size(Annotated[Annotated[int, Gt(0)] | ParameterizedSize | SizeReference, Field(examples=[10, ParameterizedSize(min=32, step=16).model_dump(mode='json'), {'tensor_id': 't', 'axis_id': 'a', 'offset': 5}])]) -
id(Annotated[NonBatchAxisId, Field(examples=['x', 'y', 'z'])]) -
description(Annotated[str, MaxLen(128)]) -
type(Literal['space']) -
unit(SpaceUnit | None) -
scale(Annotated[float, Gt(0)]) -
concatenable(bool)
concatenable
pydantic-field
¤
concatenable: bool = False
If a model has a concatenable input axis, it can be processed blockwise,
splitting a longer sample axis into blocks matching its input tensor description.
Output axes are concatenable if they have a SizeReference to a concatenable
input axis.
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
id: Annotated[
NonBatchAxisId, Field(examples=["x", "y", "z"])
] = DEFAULT_SPACE_AXIS_ID
An axis id unique across all axes of one tensor.
size
pydantic-field
¤
size: Annotated[
Annotated[int, Gt(0)]
| ParameterizedSize
| SizeReference,
Field(
examples=[
10,
ParameterizedSize(min=32, step=16).model_dump(
mode="json"
),
{"tensor_id": "t", "axis_id": "a", "offset": 5},
]
),
]
The size/length of this axis can be specified as - fixed integer - parameterized series of valid sizes (ParameterizedSize) - reference to another axis with an optional offset (SizeReference)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
SpaceOutputAxis
pydantic-model
¤
Bases: SpaceAxisBase, _WithOutputAxisSize
Show JSON schema:
{
"$defs": {
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.SpaceOutputAxis",
"type": "object"
}
Fields:
-
size(Annotated[Annotated[int, Gt(0)] | SizeReference, Field(examples=[10, {'tensor_id': 't', 'axis_id': 'a', 'offset': 5}])]) -
id(Annotated[NonBatchAxisId, Field(examples=['x', 'y', 'z'])]) -
description(Annotated[str, MaxLen(128)]) -
type(Literal['space']) -
unit(SpaceUnit | None) -
scale(Annotated[float, Gt(0)])
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
id: Annotated[
NonBatchAxisId, Field(examples=["x", "y", "z"])
] = DEFAULT_SPACE_AXIS_ID
An axis id unique across all axes of one tensor.
size
pydantic-field
¤
size: Annotated[
Annotated[int, Gt(0)] | SizeReference,
Field(
examples=[
10,
{"tensor_id": "t", "axis_id": "a", "offset": 5},
]
),
]
The size/length of this axis can be specified as - fixed integer - reference to another axis with an optional offset (see SizeReference)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
SpaceOutputAxisWithHalo
pydantic-model
¤
Bases: SpaceAxisBase, WithHalo
Show JSON schema:
{
"$defs": {
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"halo": {
"description": "The halo should be cropped from the output tensor to avoid boundary effects.\nIt is to be cropped from both sides, i.e. `size_after_crop = size - 2 * halo`.\nTo document a halo that is already cropped by the model use `size.offset` instead.",
"minimum": 1,
"title": "Halo",
"type": "integer"
},
"size": {
"$ref": "#/$defs/SizeReference",
"description": "reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
]
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"halo",
"size",
"type"
],
"title": "model.v0_5.SpaceOutputAxisWithHalo",
"type": "object"
}
Fields:
-
halo(Annotated[int, Ge(1)]) -
size(Annotated[SizeReference, Field(examples=[{'tensor_id': 't', 'axis_id': 'a', 'offset': 5}])]) -
id(Annotated[NonBatchAxisId, Field(examples=['x', 'y', 'z'])]) -
description(Annotated[str, MaxLen(128)]) -
type(Literal['space']) -
unit(SpaceUnit | None) -
scale(Annotated[float, Gt(0)])
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
halo
pydantic-field
¤
halo: Annotated[int, Ge(1)]
The halo should be cropped from the output tensor to avoid boundary effects.
It is to be cropped from both sides, i.e. size_after_crop = size - 2 * halo.
To document a halo that is already cropped by the model use size.offset instead.
id
pydantic-field
¤
id: Annotated[
NonBatchAxisId, Field(examples=["x", "y", "z"])
] = DEFAULT_SPACE_AXIS_ID
An axis id unique across all axes of one tensor.
size
pydantic-field
¤
size: Annotated[
SizeReference,
Field(
examples=[
{"tensor_id": "t", "axis_id": "a", "offset": 5}
]
),
]
reference to another axis with an optional offset (see SizeReference)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
StardistPostprocessingDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Stardist postprocessing including non-maximum suppression and converting polygon representations to instance labels
as described in: - Uwe Schmidt, Martin Weigert, Coleman Broaddus, and Gene Myers. Cell Detection with Star-convex Polygons. International Conference on Medical Image Computing and Computer-Assisted Intervention (MICCAI), Granada, Spain, September 2018. - Martin Weigert, Uwe Schmidt, Robert Haase, Ko Sugawara, and Gene Myers. Star-convex Polyhedra for 3D Object Detection and Segmentation in Microscopy. The IEEE Winter Conference on Applications of Computer Vision (WACV), Snowmass Village, Colorado, March 2020.
Note: Only available if the stardist package is installed.
Show JSON schema:
{
"$defs": {
"StardistPostprocessingKwargs2D": {
"additionalProperties": false,
"properties": {
"prob_threshold": {
"description": "The probability threshold for object candidate selection.",
"title": "Prob Threshold",
"type": "number"
},
"nms_threshold": {
"description": "The IoU threshold for non-maximum suppression.",
"title": "Nms Threshold",
"type": "number"
},
"n_rays": {
"description": "Number of radial lines (rays) cast from the center of an object to its boundary.",
"title": "N Rays",
"type": "integer"
},
"grid": {
"description": "Grid size of network predictions.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"title": "Grid",
"type": "array"
},
"b": {
"anyOf": [
{
"type": "integer"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
}
],
"type": "array"
}
],
"description": "Border region in which object probability is set to zero.",
"title": "B"
}
},
"required": [
"prob_threshold",
"nms_threshold",
"n_rays",
"grid",
"b"
],
"title": "model.v0_5.StardistPostprocessingKwargs2D",
"type": "object"
},
"StardistPostprocessingKwargs3D": {
"additionalProperties": false,
"properties": {
"prob_threshold": {
"description": "The probability threshold for object candidate selection.",
"title": "Prob Threshold",
"type": "number"
},
"nms_threshold": {
"description": "The IoU threshold for non-maximum suppression.",
"title": "Nms Threshold",
"type": "number"
},
"n_rays": {
"description": "Number of radial lines (rays) cast from the center of an object to its boundary.",
"title": "N Rays",
"type": "integer"
},
"grid": {
"description": "Grid size of network predictions.",
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
},
{
"type": "integer"
}
],
"title": "Grid",
"type": "array"
},
"b": {
"anyOf": [
{
"type": "integer"
},
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
}
],
"type": "array"
}
],
"description": "Border region in which object probability is set to zero.",
"title": "B"
},
"anisotropy": {
"description": "Anisotropy factors for 3D star-convex polyhedra, i.e. the physical pixel size along each spatial axis.",
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
],
"title": "Anisotropy",
"type": "array"
},
"overlap_label": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional label to apply to any area of overlapping predicted objects.",
"title": "Overlap Label"
}
},
"required": [
"prob_threshold",
"nms_threshold",
"n_rays",
"grid",
"b",
"anisotropy"
],
"title": "model.v0_5.StardistPostprocessingKwargs3D",
"type": "object"
}
},
"additionalProperties": false,
"description": "Stardist postprocessing including non-maximum suppression and converting polygon representations to instance labels\n\nas described in:\n- Uwe Schmidt, Martin Weigert, Coleman Broaddus, and Gene Myers.\n[*Cell Detection with Star-convex Polygons*](https://arxiv.org/abs/1806.03535).\nInternational Conference on Medical Image Computing and Computer-Assisted Intervention (MICCAI), Granada, Spain, September 2018.\n- Martin Weigert, Uwe Schmidt, Robert Haase, Ko Sugawara, and Gene Myers.\n[*Star-convex Polyhedra for 3D Object Detection and Segmentation in Microscopy*](http://openaccess.thecvf.com/content_WACV_2020/papers/Weigert_Star-convex_Polyhedra_for_3D_Object_Detection_and_Segmentation_in_Microscopy_WACV_2020_paper.pdf).\nThe IEEE Winter Conference on Applications of Computer Vision (WACV), Snowmass Village, Colorado, March 2020.\n\nNote: Only available if the `stardist` package is installed.",
"properties": {
"id": {
"const": "stardist_postprocessing",
"title": "Id",
"type": "string"
},
"kwargs": {
"anyOf": [
{
"$ref": "#/$defs/StardistPostprocessingKwargs2D"
},
{
"$ref": "#/$defs/StardistPostprocessingKwargs3D"
}
],
"title": "Kwargs"
}
},
"required": [
"id",
"kwargs"
],
"title": "model.v0_5.StardistPostprocessingDescr",
"type": "object"
}
Fields:
-
id(Literal['stardist_postprocessing']) -
kwargs(StardistPostprocessingKwargs2D | StardistPostprocessingKwargs3D)
implemented_id
class-attribute
¤
implemented_id: Literal["stardist_postprocessing"] = (
"stardist_postprocessing"
)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
StardistPostprocessingKwargs2D
pydantic-model
¤
Bases: _StardistPostprocessingKwargsBase
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"prob_threshold": {
"description": "The probability threshold for object candidate selection.",
"title": "Prob Threshold",
"type": "number"
},
"nms_threshold": {
"description": "The IoU threshold for non-maximum suppression.",
"title": "Nms Threshold",
"type": "number"
},
"n_rays": {
"description": "Number of radial lines (rays) cast from the center of an object to its boundary.",
"title": "N Rays",
"type": "integer"
},
"grid": {
"description": "Grid size of network predictions.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"title": "Grid",
"type": "array"
},
"b": {
"anyOf": [
{
"type": "integer"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
}
],
"type": "array"
}
],
"description": "Border region in which object probability is set to zero.",
"title": "B"
}
},
"required": [
"prob_threshold",
"nms_threshold",
"n_rays",
"grid",
"b"
],
"title": "model.v0_5.StardistPostprocessingKwargs2D",
"type": "object"
}
Fields:
-
prob_threshold(float) -
nms_threshold(float) -
n_rays(int) -
grid(tuple[int, int]) -
b(int | tuple[tuple[int, int], tuple[int, int]])
b
pydantic-field
¤
b: int | tuple[tuple[int, int], tuple[int, int]]
Border region in which object probability is set to zero.
n_rays
pydantic-field
¤
n_rays: int
Number of radial lines (rays) cast from the center of an object to its boundary.
prob_threshold
pydantic-field
¤
prob_threshold: float
The probability threshold for object candidate selection.
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
StardistPostprocessingKwargs3D
pydantic-model
¤
Bases: _StardistPostprocessingKwargsBase
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"prob_threshold": {
"description": "The probability threshold for object candidate selection.",
"title": "Prob Threshold",
"type": "number"
},
"nms_threshold": {
"description": "The IoU threshold for non-maximum suppression.",
"title": "Nms Threshold",
"type": "number"
},
"n_rays": {
"description": "Number of radial lines (rays) cast from the center of an object to its boundary.",
"title": "N Rays",
"type": "integer"
},
"grid": {
"description": "Grid size of network predictions.",
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
},
{
"type": "integer"
}
],
"title": "Grid",
"type": "array"
},
"b": {
"anyOf": [
{
"type": "integer"
},
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
},
{
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
}
],
"type": "array"
}
],
"type": "array"
}
],
"description": "Border region in which object probability is set to zero.",
"title": "B"
},
"anisotropy": {
"description": "Anisotropy factors for 3D star-convex polyhedra, i.e. the physical pixel size along each spatial axis.",
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
],
"title": "Anisotropy",
"type": "array"
},
"overlap_label": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional label to apply to any area of overlapping predicted objects.",
"title": "Overlap Label"
}
},
"required": [
"prob_threshold",
"nms_threshold",
"n_rays",
"grid",
"b",
"anisotropy"
],
"title": "model.v0_5.StardistPostprocessingKwargs3D",
"type": "object"
}
Fields:
-
prob_threshold(float) -
nms_threshold(float) -
n_rays(int) -
grid(tuple[int, int, int]) -
b(int | tuple[tuple[int, int], tuple[int, int], tuple[int, int]]) -
anisotropy(tuple[float, float, float]) -
overlap_label(int | None)
anisotropy
pydantic-field
¤
anisotropy: tuple[float, float, float]
Anisotropy factors for 3D star-convex polyhedra, i.e. the physical pixel size along each spatial axis.
b
pydantic-field
¤
b: (
int
| tuple[
tuple[int, int], tuple[int, int], tuple[int, int]
]
)
Border region in which object probability is set to zero.
n_rays
pydantic-field
¤
n_rays: int
Number of radial lines (rays) cast from the center of an object to its boundary.
overlap_label
pydantic-field
¤
overlap_label: int | None = None
Optional label to apply to any area of overlapping predicted objects.
prob_threshold
pydantic-field
¤
prob_threshold: float
The probability threshold for object candidate selection.
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
SymmetricPadding
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"mode": {
"const": "symmetric",
"default": "symmetric",
"title": "Mode",
"type": "string"
}
},
"title": "model.v0_5.SymmetricPadding",
"type": "object"
}
Fields:
-
mode(Literal['symmetric'])
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
TensorDescrBase
pydantic-model
¤
Bases: Node, Generic[IO_AxisT]
Show JSON schema:
{
"$defs": {
"BatchAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "batch",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "batch",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"const": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The batch size may be fixed to 1,\notherwise (the default) it may be chosen arbitrarily depending on available memory",
"title": "Size"
}
},
"required": [
"type"
],
"title": "model.v0_5.BatchAxis",
"type": "object"
},
"ChannelAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "channel",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "channel",
"title": "Type",
"type": "string"
},
"channel_names": {
"description": "Name/label for each channel. The number of channels is given by `len(channel_names)`.",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Channel Names",
"type": "array"
}
},
"required": [
"type",
"channel_names"
],
"title": "model.v0_5.ChannelAxis",
"type": "object"
},
"DataDependentSize": {
"additionalProperties": false,
"properties": {
"min": {
"default": 1,
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"max": {
"anyOf": [
{
"exclusiveMinimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max"
}
},
"title": "model.v0_5.DataDependentSize",
"type": "object"
},
"FileDescr": {
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
},
"IndexInputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "index",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "index",
"title": "Type",
"type": "string"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.IndexInputAxis",
"type": "object"
},
"IndexOutputAxis": {
"additionalProperties": false,
"properties": {
"id": {
"default": "index",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "index",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
},
{
"$ref": "#/$defs/DataDependentSize"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset ([SizeReference][])\n- data dependent size using [DataDependentSize][] (size is only known after model inference)",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
}
},
"required": [
"type",
"size"
],
"title": "model.v0_5.IndexOutputAxis",
"type": "object"
},
"IntervalOrRatioDataDescr": {
"additionalProperties": false,
"properties": {
"type": {
"default": "float32",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64"
],
"examples": [
"float32",
"float64",
"uint8",
"uint16"
],
"title": "Type",
"type": "string"
},
"range": {
"default": [
null,
null
],
"description": "Tuple `(minimum, maximum)` specifying the allowed range of the data in this tensor.\n`None` corresponds to min/max of what can be expressed by **type**.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
{
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
],
"title": "Range",
"type": "array"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
}
],
"default": "arbitrary unit",
"title": "Unit"
},
"scale": {
"default": 1.0,
"description": "Scale for data on an interval (or ratio) scale.",
"title": "Scale",
"type": "number"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Offset for data on a ratio scale.",
"title": "Offset"
}
},
"title": "model.v0_5.IntervalOrRatioDataDescr",
"type": "object"
},
"NominalOrOrdinalDataDescr": {
"additionalProperties": false,
"properties": {
"values": {
"anyOf": [
{
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "number"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "boolean"
},
"minItems": 1,
"type": "array"
},
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
}
],
"description": "A fixed set of nominal or an ascending sequence of ordinal values.\nIn this case `data.type` is required to be an unsigend integer type, e.g. 'uint8'.\nString `values` are interpreted as labels for tensor values 0, ..., N.\nNote: as YAML 1.2 does not natively support a \"set\" datatype,\nnominal values should be given as a sequence (aka list/array) as well.",
"title": "Values"
},
"type": {
"default": "uint8",
"enum": [
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool"
],
"examples": [
"float32",
"uint8",
"uint16",
"int64",
"bool"
],
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"const": "arbitrary unit",
"type": "string"
},
{
"description": "An SI unit",
"minLength": 1,
"pattern": "^(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?((\u00b7(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^[+-]?[1-9]\\d*)?)|(/(Q|R|Y|Z|E|P|T|G|M|k|h|da|d|c|m|\u00b5|n|p|f|a|z|y|r|q)?(m|g|s|A|K|mol|cd|Hz|N|Pa|J|W|C|V|F|\u03a9|S|Wb|T|H|lm|lx|Bq|Gy|Sv|kat|l|L)(\\^+?[1-9]\\d*)?))*$",
"title": "SiUnit",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
}
},
"required": [
"values"
],
"title": "model.v0_5.NominalOrOrdinalDataDescr",
"type": "object"
},
"ParameterizedSize": {
"additionalProperties": false,
"description": "Describes a range of valid tensor axis sizes as `size = min + n*step`.\n\n- **min** and **step** are given by the model description.\n- All blocksize paramters n = 0,1,2,... yield a valid `size`.\n- A greater blocksize paramter n = 0,1,2,... results in a greater **size**.\n This allows to adjust the axis size more generically.",
"properties": {
"min": {
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"step": {
"exclusiveMinimum": 0,
"title": "Step",
"type": "integer"
}
},
"required": [
"min",
"step"
],
"title": "model.v0_5.ParameterizedSize",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
},
"SpaceInputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.SpaceInputAxis",
"type": "object"
},
"SpaceOutputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.SpaceOutputAxis",
"type": "object"
},
"SpaceOutputAxisWithHalo": {
"additionalProperties": false,
"properties": {
"halo": {
"description": "The halo should be cropped from the output tensor to avoid boundary effects.\nIt is to be cropped from both sides, i.e. `size_after_crop = size - 2 * halo`.\nTo document a halo that is already cropped by the model use `size.offset` instead.",
"minimum": 1,
"title": "Halo",
"type": "integer"
},
"size": {
"$ref": "#/$defs/SizeReference",
"description": "reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
]
},
"id": {
"default": "x",
"examples": [
"x",
"y",
"z"
],
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "space",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attometer",
"angstrom",
"centimeter",
"decimeter",
"exameter",
"femtometer",
"foot",
"gigameter",
"hectometer",
"inch",
"kilometer",
"megameter",
"meter",
"micrometer",
"mile",
"millimeter",
"nanometer",
"parsec",
"petameter",
"picometer",
"terameter",
"yard",
"yoctometer",
"yottameter",
"zeptometer",
"zettameter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"halo",
"size",
"type"
],
"title": "model.v0_5.SpaceOutputAxisWithHalo",
"type": "object"
},
"TimeInputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.TimeInputAxis",
"type": "object"
},
"TimeOutputAxis": {
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.TimeOutputAxis",
"type": "object"
},
"TimeOutputAxisWithHalo": {
"additionalProperties": false,
"properties": {
"halo": {
"description": "The halo should be cropped from the output tensor to avoid boundary effects.\nIt is to be cropped from both sides, i.e. `size_after_crop = size - 2 * halo`.\nTo document a halo that is already cropped by the model use `size.offset` instead.",
"minimum": 1,
"title": "Halo",
"type": "integer"
},
"size": {
"$ref": "#/$defs/SizeReference",
"description": "reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
]
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"halo",
"size",
"type"
],
"title": "model.v0_5.TimeOutputAxisWithHalo",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"id": {
"description": "Tensor id. No duplicates are allowed.",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"description": {
"default": "",
"description": "free text description",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"axes": {
"description": "tensor axes",
"items": {
"anyOf": [
{
"discriminator": {
"mapping": {
"batch": "#/$defs/BatchAxis",
"channel": "#/$defs/ChannelAxis",
"index": "#/$defs/IndexInputAxis",
"space": "#/$defs/SpaceInputAxis",
"time": "#/$defs/TimeInputAxis"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/BatchAxis"
},
{
"$ref": "#/$defs/ChannelAxis"
},
{
"$ref": "#/$defs/IndexInputAxis"
},
{
"$ref": "#/$defs/TimeInputAxis"
},
{
"$ref": "#/$defs/SpaceInputAxis"
}
]
},
{
"discriminator": {
"mapping": {
"batch": "#/$defs/BatchAxis",
"channel": "#/$defs/ChannelAxis",
"index": "#/$defs/IndexOutputAxis",
"space": {
"oneOf": [
{
"$ref": "#/$defs/SpaceOutputAxis"
},
{
"$ref": "#/$defs/SpaceOutputAxisWithHalo"
}
]
},
"time": {
"oneOf": [
{
"$ref": "#/$defs/TimeOutputAxis"
},
{
"$ref": "#/$defs/TimeOutputAxisWithHalo"
}
]
}
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/BatchAxis"
},
{
"$ref": "#/$defs/ChannelAxis"
},
{
"$ref": "#/$defs/IndexOutputAxis"
},
{
"oneOf": [
{
"$ref": "#/$defs/TimeOutputAxis"
},
{
"$ref": "#/$defs/TimeOutputAxisWithHalo"
}
]
},
{
"oneOf": [
{
"$ref": "#/$defs/SpaceOutputAxis"
},
{
"$ref": "#/$defs/SpaceOutputAxisWithHalo"
}
]
}
]
}
]
},
"minItems": 1,
"title": "Axes",
"type": "array"
},
"test_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "An example tensor to use for testing.\nUsing the model with the test input tensors is expected to yield the test output tensors.\nEach test tensor has be a an ndarray in the\n[numpy.lib file format](https://numpy.org/doc/stable/reference/generated/numpy.lib.format.html#module-numpy.lib.format).\nThe file extension must be '.npy'."
},
"sample_tensor": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr"
},
{
"type": "null"
}
],
"default": null,
"description": "A sample tensor to illustrate a possible input/output for the model,\nThe sample image primarily serves to inform a human user about an example use case\nand is typically stored as .hdf5, .png or .tiff.\nIt has to be readable by the [imageio library](https://imageio.readthedocs.io/en/stable/formats/index.html#supported-formats)\n(numpy's `.npy` format is not supported).\nThe image dimensionality has to match the number of axes specified in this tensor description."
},
"data": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
},
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/NominalOrOrdinalDataDescr"
},
{
"$ref": "#/$defs/IntervalOrRatioDataDescr"
}
]
},
"minItems": 1,
"type": "array"
}
],
"default": {
"type": "float32",
"range": [
null,
null
],
"unit": "arbitrary unit",
"scale": 1.0,
"offset": null
},
"description": "Description of the tensor's data values, optionally per channel.\nIf specified per channel, the data `type` needs to match across channels.",
"title": "Data"
}
},
"required": [
"id",
"axes"
],
"title": "model.v0_5.TensorDescrBase",
"type": "object"
}
Fields:
-
id(TensorId) -
description(Annotated[str, MaxLen(128)]) -
axes(NotEmpty[Sequence[IO_AxisT]]) -
test_tensor(FAIR[FileDescr_package | None]) -
sample_tensor(FAIR[FileDescr_package | None]) -
data(TensorDataDescr | NotEmpty[Sequence[TensorDataDescr]])
Validators:
-
_validate_axes→axes -
_validate_sample_tensor -
_check_data_type_across_channels→data -
_check_data_matches_channelaxis
data
pydantic-field
¤
data: TensorDataDescr | NotEmpty[Sequence[TensorDataDescr]]
Description of the tensor's data values, optionally per channel.
If specified per channel, the data type needs to match across channels.
dtype
property
¤
dtype: Literal[
"float32",
"float64",
"uint8",
"int8",
"uint16",
"int16",
"uint32",
"int32",
"uint64",
"int64",
"bool",
]
dtype as specified under data.type or data[i].type
sample_tensor
pydantic-field
¤
sample_tensor: FAIR[FileDescr_package | None] = None
A sample tensor to illustrate a possible input/output for the model,
The sample image primarily serves to inform a human user about an example use case
and is typically stored as .hdf5, .png or .tiff.
It has to be readable by the imageio library
(numpy's .npy format is not supported).
The image dimensionality has to match the number of axes specified in this tensor description.
test_tensor
pydantic-field
¤
test_tensor: FAIR[FileDescr_package | None] = None
An example tensor to use for testing. Using the model with the test input tensors is expected to yield the test output tensors. Each test tensor has be a an ndarray in the numpy.lib file format. The file extension must be '.npy'.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get_axis_sizes_for_array
¤
get_axis_sizes_for_array(
array: NDArray[Any],
) -> dict[AxisId, int]
Source code in src/bioimageio/spec/model/v0_5.py
1937 1938 1939 1940 1941 1942 1943 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
TensorId
¤
Bases: LowerCaseIdentifier
flowchart TD
bioimageio.spec.model.v0_5.TensorId[TensorId]
bioimageio.spec._internal.types.LowerCaseIdentifier[LowerCaseIdentifier]
bioimageio.spec._internal.validated_string.ValidatedString[ValidatedString]
bioimageio.spec._internal.types.LowerCaseIdentifier --> bioimageio.spec.model.v0_5.TensorId
bioimageio.spec._internal.validated_string.ValidatedString --> bioimageio.spec._internal.types.LowerCaseIdentifier
click bioimageio.spec.model.v0_5.TensorId href "" "bioimageio.spec.model.v0_5.TensorId"
click bioimageio.spec._internal.types.LowerCaseIdentifier href "" "bioimageio.spec._internal.types.LowerCaseIdentifier"
click bioimageio.spec._internal.validated_string.ValidatedString href "" "bioimageio.spec._internal.validated_string.ValidatedString"
Methods:
| Name | Description |
|---|---|
__get_pydantic_core_schema__ |
|
__get_pydantic_json_schema__ |
|
__new__ |
|
Attributes:
| Name | Type | Description |
|---|---|---|
root_model |
type[RootModel[Any]]
|
the pydantic root model to validate the string |
root_model
class-attribute
¤
the pydantic root model to validate the string
__get_pydantic_core_schema__
classmethod
¤
__get_pydantic_core_schema__(
source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema
Source code in src/bioimageio/spec/_internal/validated_string.py
31 32 33 34 35 | |
__get_pydantic_json_schema__
classmethod
¤
__get_pydantic_json_schema__(
core_schema: CoreSchema, handler: GetJsonSchemaHandler
) -> JsonSchemaValue
Source code in src/bioimageio/spec/_internal/validated_string.py
37 38 39 40 41 42 43 44 45 46 | |
__new__
¤
__new__(object: object)
Source code in src/bioimageio/spec/_internal/validated_string.py
21 22 23 24 25 | |
TensorflowJsWeightsDescr
pydantic-model
¤
Bases: WeightsEntryDescrBase
Show JSON schema:
{
"$defs": {
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
}
},
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "The multi-file weights.\nAll required files/folders should be a zip archive.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"tensorflow_version": {
"$ref": "#/$defs/Version",
"description": "Version of the TensorFlow library used."
}
},
"required": [
"source",
"tensorflow_version"
],
"title": "model.v0_5.TensorflowJsWeightsDescr",
"type": "object"
}
Fields:
-
sha256(Sha256 | None) -
authors(list[Author] | None) -
parent(Annotated[WeightsFormat | None, Field(examples=['pytorch_state_dict'])]) -
comment(str) -
tensorflow_version(Version) -
source(Annotated[FileSource, AfterValidator(wo_special_file_name)])
Validators:
-
_validate
authors
pydantic-field
¤
authors: list[Author] | None = None
Authors
Either the person(s) that have trained this model resulting in the original weights file.
(If this is the initial weights entry, i.e. it does not have a parent)
Or the person(s) who have converted the weights to this weights format.
(If this is a child weight, i.e. it has a parent field)
comment
pydantic-field
¤
comment: str = ''
A comment about this weights entry, for example how these weights were created.
parent
pydantic-field
¤
parent: Annotated[
WeightsFormat | None,
Field(examples=["pytorch_state_dict"]),
] = None
The source weights these weights were converted from.
For example, if a model's weights were converted from the pytorch_state_dict format to torchscript,
The pytorch_state_dict weights entry has no parent and is the parent of the torchscript weights.
All weight entries except one (the initial set of weights resulting from training the model),
need to have this field.
source
pydantic-field
¤
source: Annotated[
FileSource, AfterValidator(wo_special_file_name)
]
The multi-file weights. All required files/folders should be a zip archive.
tensorflow_version
pydantic-field
¤
tensorflow_version: Version
Version of the TensorFlow library used.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
TensorflowSavedModelBundleWeightsDescr
pydantic-model
¤
Bases: WeightsEntryDescrBase
Show JSON schema:
{
"$defs": {
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"FileDescr": {
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
}
},
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "The multi-file weights.\nAll required files/folders should be a zip archive.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"tensorflow_version": {
"$ref": "#/$defs/Version",
"description": "Version of the TensorFlow library used."
},
"dependencies": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "environment.yaml"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Custom dependencies beyond tensorflow.\nShould include tensorflow and any version pinning has to be compatible with **tensorflow_version**."
}
},
"required": [
"source",
"tensorflow_version"
],
"title": "model.v0_5.TensorflowSavedModelBundleWeightsDescr",
"type": "object"
}
Fields:
-
sha256(Sha256 | None) -
authors(list[Author] | None) -
parent(Annotated[WeightsFormat | None, Field(examples=['pytorch_state_dict'])]) -
comment(str) -
tensorflow_version(Version) -
dependencies(FileDescr_dependencies | None) -
source(Annotated[FileSource, AfterValidator(wo_special_file_name)])
Validators:
-
_validate
authors
pydantic-field
¤
authors: list[Author] | None = None
Authors
Either the person(s) that have trained this model resulting in the original weights file.
(If this is the initial weights entry, i.e. it does not have a parent)
Or the person(s) who have converted the weights to this weights format.
(If this is a child weight, i.e. it has a parent field)
comment
pydantic-field
¤
comment: str = ''
A comment about this weights entry, for example how these weights were created.
dependencies
pydantic-field
¤
dependencies: FileDescr_dependencies | None = None
Custom dependencies beyond tensorflow. Should include tensorflow and any version pinning has to be compatible with tensorflow_version.
parent
pydantic-field
¤
parent: Annotated[
WeightsFormat | None,
Field(examples=["pytorch_state_dict"]),
] = None
The source weights these weights were converted from.
For example, if a model's weights were converted from the pytorch_state_dict format to torchscript,
The pytorch_state_dict weights entry has no parent and is the parent of the torchscript weights.
All weight entries except one (the initial set of weights resulting from training the model),
need to have this field.
source
pydantic-field
¤
source: Annotated[
FileSource, AfterValidator(wo_special_file_name)
]
The multi-file weights. All required files/folders should be a zip archive.
tensorflow_version
pydantic-field
¤
tensorflow_version: Version
Version of the TensorFlow library used.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
TimeAxisBase
pydantic-model
¤
Bases: AxisBase
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"type"
],
"title": "model.v0_5.TimeAxisBase",
"type": "object"
}
Fields:
-
description(Annotated[str, MaxLen(128)]) -
type(Literal['time']) -
id(NonBatchAxisId) -
unit(TimeUnit | None) -
scale(Annotated[float, Gt(0)])
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
An axis id unique across all axes of one tensor.
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
TimeInputAxis
pydantic-model
¤
Bases: TimeAxisBase, _WithInputAxisSize
Show JSON schema:
{
"$defs": {
"ParameterizedSize": {
"additionalProperties": false,
"description": "Describes a range of valid tensor axis sizes as `size = min + n*step`.\n\n- **min** and **step** are given by the model description.\n- All blocksize paramters n = 0,1,2,... yield a valid `size`.\n- A greater blocksize paramter n = 0,1,2,... results in a greater **size**.\n This allows to adjust the axis size more generically.",
"properties": {
"min": {
"exclusiveMinimum": 0,
"title": "Min",
"type": "integer"
},
"step": {
"exclusiveMinimum": 0,
"title": "Step",
"type": "integer"
}
},
"required": [
"min",
"step"
],
"title": "model.v0_5.ParameterizedSize",
"type": "object"
},
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/ParameterizedSize"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- parameterized series of valid sizes ([ParameterizedSize][])\n- reference to another axis with an optional offset ([SizeReference][])",
"examples": [
10,
{
"min": 32,
"step": 16
},
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
},
"concatenable": {
"default": false,
"description": "If a model has a `concatenable` input axis, it can be processed blockwise,\nsplitting a longer sample axis into blocks matching its input tensor description.\nOutput axes are concatenable if they have a [SizeReference][] to a concatenable\ninput axis.",
"title": "Concatenable",
"type": "boolean"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.TimeInputAxis",
"type": "object"
}
Fields:
-
size(Annotated[Annotated[int, Gt(0)] | ParameterizedSize | SizeReference, Field(examples=[10, ParameterizedSize(min=32, step=16).model_dump(mode='json'), {'tensor_id': 't', 'axis_id': 'a', 'offset': 5}])]) -
id(NonBatchAxisId) -
description(Annotated[str, MaxLen(128)]) -
type(Literal['time']) -
unit(TimeUnit | None) -
scale(Annotated[float, Gt(0)]) -
concatenable(bool)
concatenable
pydantic-field
¤
concatenable: bool = False
If a model has a concatenable input axis, it can be processed blockwise,
splitting a longer sample axis into blocks matching its input tensor description.
Output axes are concatenable if they have a SizeReference to a concatenable
input axis.
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
An axis id unique across all axes of one tensor.
size
pydantic-field
¤
size: Annotated[
Annotated[int, Gt(0)]
| ParameterizedSize
| SizeReference,
Field(
examples=[
10,
ParameterizedSize(min=32, step=16).model_dump(
mode="json"
),
{"tensor_id": "t", "axis_id": "a", "offset": 5},
]
),
]
The size/length of this axis can be specified as - fixed integer - parameterized series of valid sizes (ParameterizedSize) - reference to another axis with an optional offset (SizeReference)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
TimeOutputAxis
pydantic-model
¤
Bases: TimeAxisBase, _WithOutputAxisSize
Show JSON schema:
{
"$defs": {
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"size": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"$ref": "#/$defs/SizeReference"
}
],
"description": "The size/length of this axis can be specified as\n- fixed integer\n- reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
10,
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
],
"title": "Size"
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"size",
"type"
],
"title": "model.v0_5.TimeOutputAxis",
"type": "object"
}
Fields:
-
size(Annotated[Annotated[int, Gt(0)] | SizeReference, Field(examples=[10, {'tensor_id': 't', 'axis_id': 'a', 'offset': 5}])]) -
id(NonBatchAxisId) -
description(Annotated[str, MaxLen(128)]) -
type(Literal['time']) -
unit(TimeUnit | None) -
scale(Annotated[float, Gt(0)])
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
id
pydantic-field
¤
An axis id unique across all axes of one tensor.
size
pydantic-field
¤
size: Annotated[
Annotated[int, Gt(0)] | SizeReference,
Field(
examples=[
10,
{"tensor_id": "t", "axis_id": "a", "offset": 5},
]
),
]
The size/length of this axis can be specified as - fixed integer - reference to another axis with an optional offset (see SizeReference)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
TimeOutputAxisWithHalo
pydantic-model
¤
Bases: TimeAxisBase, WithHalo
Show JSON schema:
{
"$defs": {
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"halo": {
"description": "The halo should be cropped from the output tensor to avoid boundary effects.\nIt is to be cropped from both sides, i.e. `size_after_crop = size - 2 * halo`.\nTo document a halo that is already cropped by the model use `size.offset` instead.",
"minimum": 1,
"title": "Halo",
"type": "integer"
},
"size": {
"$ref": "#/$defs/SizeReference",
"description": "reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
]
},
"id": {
"default": "time",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"description": {
"default": "",
"description": "A short description of this axis beyond its type and id.",
"maxLength": 128,
"title": "Description",
"type": "string"
},
"type": {
"const": "time",
"title": "Type",
"type": "string"
},
"unit": {
"anyOf": [
{
"enum": [
"attosecond",
"centisecond",
"day",
"decisecond",
"exasecond",
"femtosecond",
"gigasecond",
"hectosecond",
"hour",
"kilosecond",
"megasecond",
"microsecond",
"millisecond",
"minute",
"nanosecond",
"petasecond",
"picosecond",
"second",
"terasecond",
"yoctosecond",
"yottasecond",
"zeptosecond",
"zettasecond"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"scale": {
"default": 1.0,
"exclusiveMinimum": 0,
"title": "Scale",
"type": "number"
}
},
"required": [
"halo",
"size",
"type"
],
"title": "model.v0_5.TimeOutputAxisWithHalo",
"type": "object"
}
Fields:
-
halo(Annotated[int, Ge(1)]) -
size(Annotated[SizeReference, Field(examples=[{'tensor_id': 't', 'axis_id': 'a', 'offset': 5}])]) -
id(NonBatchAxisId) -
description(Annotated[str, MaxLen(128)]) -
type(Literal['time']) -
unit(TimeUnit | None) -
scale(Annotated[float, Gt(0)])
description
pydantic-field
¤
description: Annotated[str, MaxLen(128)] = ''
A short description of this axis beyond its type and id.
halo
pydantic-field
¤
halo: Annotated[int, Ge(1)]
The halo should be cropped from the output tensor to avoid boundary effects.
It is to be cropped from both sides, i.e. size_after_crop = size - 2 * halo.
To document a halo that is already cropped by the model use size.offset instead.
id
pydantic-field
¤
An axis id unique across all axes of one tensor.
size
pydantic-field
¤
size: Annotated[
SizeReference,
Field(
examples=[
{"tensor_id": "t", "axis_id": "a", "offset": 5}
]
),
]
reference to another axis with an optional offset (see SizeReference)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
TorchscriptWeightsDescr
pydantic-model
¤
Bases: WeightsEntryDescrBase
Show JSON schema:
{
"$defs": {
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
}
},
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"pytorch_version": {
"$ref": "#/$defs/Version",
"description": "Version of the PyTorch library used."
}
},
"required": [
"source",
"pytorch_version"
],
"title": "model.v0_5.TorchscriptWeightsDescr",
"type": "object"
}
Fields:
-
source(Annotated[FileSource, AfterValidator(wo_special_file_name)]) -
sha256(Sha256 | None) -
authors(list[Author] | None) -
parent(Annotated[WeightsFormat | None, Field(examples=['pytorch_state_dict'])]) -
comment(str) -
pytorch_version(Version)
Validators:
-
_validate
authors
pydantic-field
¤
authors: list[Author] | None = None
Authors
Either the person(s) that have trained this model resulting in the original weights file.
(If this is the initial weights entry, i.e. it does not have a parent)
Or the person(s) who have converted the weights to this weights format.
(If this is a child weight, i.e. it has a parent field)
comment
pydantic-field
¤
comment: str = ''
A comment about this weights entry, for example how these weights were created.
parent
pydantic-field
¤
parent: Annotated[
WeightsFormat | None,
Field(examples=["pytorch_state_dict"]),
] = None
The source weights these weights were converted from.
For example, if a model's weights were converted from the pytorch_state_dict format to torchscript,
The pytorch_state_dict weights entry has no parent and is the parent of the torchscript weights.
All weight entries except one (the initial set of weights resulting from training the model),
need to have this field.
source
pydantic-field
¤
source: Annotated[
FileSource, AfterValidator(wo_special_file_name)
]
Source of the weights file.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
TrainingDetails
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"$defs": {
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"additionalProperties": true,
"properties": {
"training_preprocessing": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Detailed image preprocessing steps during model training:\n\nMention:\n- *Normalization methods*\n- *Augmentation strategies*\n- *Resizing/resampling procedures*\n- *Artifact handling*",
"title": "Training Preprocessing"
},
"training_epochs": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of training epochs.",
"title": "Training Epochs"
},
"training_batch_size": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Batch size used in training.",
"title": "Training Batch Size"
},
"initial_learning_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Initial learning rate used in training.",
"title": "Initial Learning Rate"
},
"learning_rate_schedule": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Learning rate schedule used in training.",
"title": "Learning Rate Schedule"
},
"loss_function": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Loss function used in training, e.g. nn.MSELoss.",
"title": "Loss Function"
},
"loss_function_kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `loss_function`",
"title": "Loss Function Kwargs",
"type": "object"
},
"optimizer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "optimizer, e.g. torch.optim.Adam",
"title": "Optimizer"
},
"optimizer_kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `optimizer`",
"title": "Optimizer Kwargs",
"type": "object"
},
"regularization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Regularization techniques used during training, e.g. drop-out or weight decay.",
"title": "Regularization"
},
"training_duration": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Total training duration in hours.",
"title": "Training Duration"
}
},
"title": "model.v0_5.TrainingDetails",
"type": "object"
}
Fields:
-
training_preprocessing(str | None) -
training_epochs(float | None) -
training_batch_size(float | None) -
initial_learning_rate(float | None) -
learning_rate_schedule(str | None) -
loss_function(str | None) -
loss_function_kwargs(dict[str, YamlValue]) -
optimizer(str | None) -
optimizer_kwargs(dict[str, YamlValue]) -
regularization(str | None) -
training_duration(float | None)
initial_learning_rate
pydantic-field
¤
initial_learning_rate: float | None = None
Initial learning rate used in training.
learning_rate_schedule
pydantic-field
¤
learning_rate_schedule: str | None = None
Learning rate schedule used in training.
loss_function
pydantic-field
¤
loss_function: str | None = None
Loss function used in training, e.g. nn.MSELoss.
loss_function_kwargs
pydantic-field
¤
loss_function_kwargs: dict[str, YamlValue]
key word arguments for the loss_function
optimizer_kwargs
pydantic-field
¤
optimizer_kwargs: dict[str, YamlValue]
key word arguments for the optimizer
regularization
pydantic-field
¤
regularization: str | None = None
Regularization techniques used during training, e.g. drop-out or weight decay.
training_batch_size
pydantic-field
¤
training_batch_size: float | None = None
Batch size used in training.
training_duration
pydantic-field
¤
training_duration: float | None = None
Total training duration in hours.
training_preprocessing
pydantic-field
¤
training_preprocessing: str | None = None
Detailed image preprocessing steps during model training:
Mention: - Normalization methods - Augmentation strategies - Resizing/resampling procedures - Artifact handling
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
Uploader
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"additionalProperties": false,
"properties": {
"email": {
"description": "Email",
"format": "email",
"title": "Email",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "name",
"title": "Name"
}
},
"required": [
"email"
],
"title": "generic.v0_2.Uploader",
"type": "object"
}
Fields:
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
Version
¤
Bases: RootModel[Union[str, int, float]]
flowchart TD
bioimageio.spec.model.v0_5.Version[Version]
click bioimageio.spec.model.v0_5.Version href "" "bioimageio.spec.model.v0_5.Version"
wraps a packaging.version.Version instance for validation in pydantic models
Methods:
| Name | Description |
|---|---|
__eq__ |
|
__ge__ |
|
__le__ |
|
__lt__ |
|
__str__ |
|
model_post_init |
set |
Attributes:
| Name | Type | Description |
|---|---|---|
base_version |
str
|
The "base version" of the version. |
dev |
int | None
|
The development number of the version. |
epoch |
int
|
The epoch of the version. |
is_devrelease |
bool
|
Whether this version is a development release. |
is_postrelease |
bool
|
Whether this version is a post-release. |
is_prerelease |
bool
|
Whether this version is a pre-release. |
local |
str | None
|
The local version segment of the version. |
major |
int
|
The first item of :attr: |
micro |
int
|
The third item of :attr: |
minor |
int
|
The second item of :attr: |
post |
int | None
|
The post-release number of the version. |
pre |
tuple[str, int] | None
|
The pre-release segment of the version. |
public |
str
|
The public portion of the version. |
release |
tuple[int, ...]
|
The components of the "release" segment of the version. |
base_version
property
¤
base_version: str
The "base version" of the version.
>>> Version("1.2.3").base_version
'1.2.3'
>>> Version("1.2.3+abc").base_version
'1.2.3'
>>> Version("1!1.2.3+abc.dev1").base_version
'1!1.2.3'
The "base version" is the public version of the project without any pre or post release markers.
dev
property
¤
dev: int | None
The development number of the version.
>>> print(Version("1.2.3").dev)
None
>>> Version("1.2.3.dev1").dev
1
epoch
property
¤
epoch: int
The epoch of the version.
>>> Version("2.0.0").epoch
0
>>> Version("1!2.0.0").epoch
1
is_devrelease
property
¤
is_devrelease: bool
Whether this version is a development release.
>>> Version("1.2.3").is_devrelease
False
>>> Version("1.2.3.dev1").is_devrelease
True
is_postrelease
property
¤
is_postrelease: bool
Whether this version is a post-release.
>>> Version("1.2.3").is_postrelease
False
>>> Version("1.2.3.post1").is_postrelease
True
is_prerelease
property
¤
is_prerelease: bool
Whether this version is a pre-release.
>>> Version("1.2.3").is_prerelease
False
>>> Version("1.2.3a1").is_prerelease
True
>>> Version("1.2.3b1").is_prerelease
True
>>> Version("1.2.3rc1").is_prerelease
True
>>> Version("1.2.3dev1").is_prerelease
True
local
property
¤
local: str | None
The local version segment of the version.
>>> print(Version("1.2.3").local)
None
>>> Version("1.2.3+abc").local
'abc'
major
property
¤
major: int
The first item of :attr:release or 0 if unavailable.
>>> Version("1.2.3").major
1
micro
property
¤
micro: int
The third item of :attr:release or 0 if unavailable.
>>> Version("1.2.3").micro
3
>>> Version("1").micro
0
minor
property
¤
minor: int
The second item of :attr:release or 0 if unavailable.
>>> Version("1.2.3").minor
2
>>> Version("1").minor
0
post
property
¤
post: int | None
The post-release number of the version.
>>> print(Version("1.2.3").post)
None
>>> Version("1.2.3.post1").post
1
pre
property
¤
pre: tuple[str, int] | None
The pre-release segment of the version.
>>> print(Version("1.2.3").pre)
None
>>> Version("1.2.3a1").pre
('a', 1)
>>> Version("1.2.3b1").pre
('b', 1)
>>> Version("1.2.3rc1").pre
('rc', 1)
public
property
¤
public: str
The public portion of the version.
>>> Version("1.2.3").public
'1.2.3'
>>> Version("1.2.3+abc").public
'1.2.3'
>>> Version("1.2.3+abc.dev1").public
'1.2.3'
release
property
¤
release: tuple[int, ...]
The components of the "release" segment of the version.
>>> Version("1.2.3").release
(1, 2, 3)
>>> Version("2.0.0").release
(2, 0, 0)
>>> Version("1!2.0.0.post0").release
(2, 0, 0)
Includes trailing zeroes but not the epoch or any pre-release / development / post-release suffixes.
__eq__
¤
__eq__(other: object)
Source code in src/bioimageio/spec/_internal/version_type.py
28 29 30 31 | |
__ge__
¤
__ge__(other: Any)
Source code in src/bioimageio/spec/_internal/version_type.py
33 34 35 36 | |
__le__
¤
__le__(other: Any)
Source code in src/bioimageio/spec/_internal/version_type.py
38 39 40 41 | |
__lt__
¤
__lt__(other: Any)
Source code in src/bioimageio/spec/_internal/version_type.py
22 23 24 25 26 | |
__str__
¤
__str__()
Source code in src/bioimageio/spec/_internal/version_type.py
14 15 | |
model_post_init
¤
model_post_init(__context: Any) -> None
set _version attribute @private
Source code in src/bioimageio/spec/_internal/version_type.py
17 18 19 20 | |
WeightsDescr
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"$defs": {
"ArchitectureFromFileDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Architecture source file",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"callable": {
"description": "Identifier of the callable that returns a torch.nn.Module instance.",
"examples": [
"MyNetworkClass",
"get_my_model"
],
"minLength": 1,
"title": "Identifier",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `callable`",
"title": "Kwargs",
"type": "object"
}
},
"required": [
"source",
"callable"
],
"title": "model.v0_5.ArchitectureFromFileDescr",
"type": "object"
},
"ArchitectureFromLibraryDescr": {
"additionalProperties": false,
"properties": {
"callable": {
"description": "Identifier of the callable that returns a torch.nn.Module instance.",
"examples": [
"MyNetworkClass",
"get_my_model"
],
"minLength": 1,
"title": "Identifier",
"type": "string"
},
"kwargs": {
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"description": "key word arguments for the `callable`",
"title": "Kwargs",
"type": "object"
},
"import_from": {
"description": "Where to import the callable from, i.e. `from <import_from> import <callable>`",
"title": "Import From",
"type": "string"
}
},
"required": [
"callable",
"import_from"
],
"title": "model.v0_5.ArchitectureFromLibraryDescr",
"type": "object"
},
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"FileDescr": {
"additionalProperties": false,
"description": "A file description",
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "File source",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
}
},
"required": [
"source"
],
"title": "_internal.io.FileDescr",
"type": "object"
},
"KerasHdf5WeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"tensorflow_version": {
"$ref": "#/$defs/Version",
"description": "TensorFlow version used to create these weights."
}
},
"required": [
"source",
"tensorflow_version"
],
"title": "model.v0_5.KerasHdf5WeightsDescr",
"type": "object"
},
"KerasV3WeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the .keras weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"keras_version": {
"$ref": "#/$defs/Version",
"description": "Keras version used to create these weights.",
"ge": 3
},
"backend": {
"description": "Keras backend used to create these weights.",
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"enum": [
"tensorflow",
"jax",
"torch"
],
"type": "string"
},
{
"$ref": "#/$defs/Version"
}
],
"title": "Backend",
"type": "array"
}
},
"required": [
"source",
"keras_version",
"backend"
],
"title": "model.v0_5.KerasV3WeightsDescr",
"type": "object"
},
"OnnxWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"opset_version": {
"description": "ONNX opset version",
"minimum": 7,
"title": "Opset Version",
"type": "integer"
},
"external_data": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "weights.onnx.data"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Source of the external ONNX data file holding the weights.\n(If present **source** holds the ONNX architecture without weights)."
}
},
"required": [
"source",
"opset_version"
],
"title": "model.v0_5.OnnxWeightsDescr",
"type": "object"
},
"PytorchStateDictWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"architecture": {
"anyOf": [
{
"$ref": "#/$defs/ArchitectureFromFileDescr"
},
{
"$ref": "#/$defs/ArchitectureFromLibraryDescr"
}
],
"title": "Architecture"
},
"pytorch_version": {
"$ref": "#/$defs/Version",
"description": "Version of the PyTorch library used.\nIf `architecture.depencencies` is specified it has to include pytorch and any version pinning has to be compatible."
},
"dependencies": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "environment.yaml"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Custom depencies beyond pytorch described in a Conda environment file.\nAllows to specify custom dependencies, see conda docs:\n- [Exporting an environment file across platforms](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-an-environment-file-across-platforms)\n- [Creating an environment file manually](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-file-manually)\n\nThe conda environment file should include pytorch and any version pinning has to be compatible with\n**pytorch_version**."
},
"strict": {
"default": true,
"description": "Whether to allow missing or unexpected keys or to be strict about the architecture matching the state dict weights.",
"title": "Strict",
"type": "boolean"
}
},
"required": [
"source",
"architecture",
"pytorch_version"
],
"title": "model.v0_5.PytorchStateDictWeightsDescr",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
},
"TensorflowJsWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "The multi-file weights.\nAll required files/folders should be a zip archive.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"tensorflow_version": {
"$ref": "#/$defs/Version",
"description": "Version of the TensorFlow library used."
}
},
"required": [
"source",
"tensorflow_version"
],
"title": "model.v0_5.TensorflowJsWeightsDescr",
"type": "object"
},
"TensorflowSavedModelBundleWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "The multi-file weights.\nAll required files/folders should be a zip archive.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"tensorflow_version": {
"$ref": "#/$defs/Version",
"description": "Version of the TensorFlow library used."
},
"dependencies": {
"anyOf": [
{
"$ref": "#/$defs/FileDescr",
"examples": [
{
"source": "environment.yaml"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Custom dependencies beyond tensorflow.\nShould include tensorflow and any version pinning has to be compatible with **tensorflow_version**."
}
},
"required": [
"source",
"tensorflow_version"
],
"title": "model.v0_5.TensorflowSavedModelBundleWeightsDescr",
"type": "object"
},
"TorchscriptWeightsDescr": {
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
},
"pytorch_version": {
"$ref": "#/$defs/Version",
"description": "Version of the PyTorch library used."
}
},
"required": [
"source",
"pytorch_version"
],
"title": "model.v0_5.TorchscriptWeightsDescr",
"type": "object"
},
"Version": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "wraps a packaging.version.Version instance for validation in pydantic models",
"title": "Version"
},
"YamlValue": {
"anyOf": [
{
"type": "boolean"
},
{
"format": "date",
"type": "string"
},
{
"format": "date-time",
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/YamlValue"
},
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/$defs/YamlValue"
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"properties": {
"keras_hdf5": {
"anyOf": [
{
"$ref": "#/$defs/KerasHdf5WeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"keras_v3": {
"anyOf": [
{
"$ref": "#/$defs/KerasV3WeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"onnx": {
"anyOf": [
{
"$ref": "#/$defs/OnnxWeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"pytorch_state_dict": {
"anyOf": [
{
"$ref": "#/$defs/PytorchStateDictWeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"tensorflow_js": {
"anyOf": [
{
"$ref": "#/$defs/TensorflowJsWeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"tensorflow_saved_model_bundle": {
"anyOf": [
{
"$ref": "#/$defs/TensorflowSavedModelBundleWeightsDescr"
},
{
"type": "null"
}
],
"default": null
},
"torchscript": {
"anyOf": [
{
"$ref": "#/$defs/TorchscriptWeightsDescr"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "model.v0_5.WeightsDescr",
"type": "object"
}
Fields:
-
keras_hdf5(KerasHdf5WeightsDescr | None) -
keras_v3(KerasV3WeightsDescr | None) -
onnx(OnnxWeightsDescr | None) -
pytorch_state_dict(PytorchStateDictWeightsDescr | None) -
tensorflow_js(TensorflowJsWeightsDescr | None) -
tensorflow_saved_model_bundle(TensorflowSavedModelBundleWeightsDescr | None) -
torchscript(TorchscriptWeightsDescr | None)
Validators:
pytorch_state_dict
pydantic-field
¤
pytorch_state_dict: PytorchStateDictWeightsDescr | None = (
None
)
tensorflow_saved_model_bundle
pydantic-field
¤
tensorflow_saved_model_bundle: (
TensorflowSavedModelBundleWeightsDescr | None
) = None
__getitem__
¤
__getitem__(key: WeightsFormat)
Source code in src/bioimageio/spec/model/v0_5.py
2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 | |
__setitem__
¤
__setitem__(
key: Literal["keras_hdf5"],
value: KerasHdf5WeightsDescr | None,
) -> None
__setitem__(
key: Literal["keras_v3"],
value: KerasV3WeightsDescr | None,
) -> None
__setitem__(
key: Literal["onnx"], value: OnnxWeightsDescr | None
) -> None
__setitem__(
key: Literal["pytorch_state_dict"],
value: PytorchStateDictWeightsDescr | None,
) -> None
__setitem__(
key: Literal["tensorflow_js"],
value: TensorflowJsWeightsDescr | None,
) -> None
__setitem__(
key: Literal["tensorflow_saved_model_bundle"],
value: TensorflowSavedModelBundleWeightsDescr | None,
) -> None
__setitem__(
key: Literal["torchscript"],
value: TorchscriptWeightsDescr | None,
) -> None
__setitem__(
key: WeightsFormat, value: SpecificWeightsDescr | None
)
Source code in src/bioimageio/spec/model/v0_5.py
3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 | |
check_entries
pydantic-validator
¤
check_entries() -> Self
Source code in src/bioimageio/spec/model/v0_5.py
2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
WeightsEntryDescrBase
pydantic-model
¤
Bases: FileDescr
Show JSON schema:
{
"$defs": {
"Author": {
"additionalProperties": false,
"properties": {
"affiliation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Affiliation",
"title": "Affiliation"
},
"email": {
"anyOf": [
{
"format": "email",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email",
"title": "Email"
},
"orcid": {
"anyOf": [
{
"description": "An ORCID identifier, see https://orcid.org/",
"title": "OrcidId",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An [ORCID iD](https://support.orcid.org/hc/en-us/sections/360001495313-What-is-ORCID\n) in hyphenated groups of 4 digits, (and [valid](\nhttps://support.orcid.org/hc/en-us/articles/360006897674-Structure-of-the-ORCID-Identifier\n) as per ISO 7064 11,2.)",
"examples": [
"0000-0001-2345-6789"
],
"title": "Orcid"
},
"name": {
"title": "Name",
"type": "string"
},
"github_user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Github User"
}
},
"required": [
"name"
],
"title": "generic.v0_3.Author",
"type": "object"
},
"RelativeFilePath": {
"description": "A path relative to the `rdf.yaml` file (also if the RDF source is a URL).",
"format": "path",
"title": "RelativeFilePath",
"type": "string"
}
},
"additionalProperties": false,
"properties": {
"source": {
"anyOf": [
{
"description": "A URL with the HTTP or HTTPS scheme.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "HttpUrl",
"type": "string"
},
{
"$ref": "#/$defs/RelativeFilePath"
},
{
"format": "file-path",
"title": "FilePath",
"type": "string"
}
],
"description": "Source of the weights file.",
"title": "FileSource"
},
"sha256": {
"anyOf": [
{
"description": "A SHA-256 hash value",
"maxLength": 64,
"minLength": 64,
"title": "Sha256",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "SHA256 hash value of the **source** file.",
"title": "Sha256"
},
"authors": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Author"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Authors\nEither the person(s) that have trained this model resulting in the original weights file.\n (If this is the initial weights entry, i.e. it does not have a `parent`)\nOr the person(s) who have converted the weights to this weights format.\n (If this is a child weight, i.e. it has a `parent` field)",
"title": "Authors"
},
"parent": {
"anyOf": [
{
"enum": [
"keras_hdf5",
"keras_v3",
"onnx",
"pytorch_state_dict",
"tensorflow_js",
"tensorflow_saved_model_bundle",
"torchscript"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The source weights these weights were converted from.\nFor example, if a model's weights were converted from the `pytorch_state_dict` format to `torchscript`,\nThe `pytorch_state_dict` weights entry has no `parent` and is the parent of the `torchscript` weights.\nAll weight entries except one (the initial set of weights resulting from training the model),\nneed to have this field.",
"examples": [
"pytorch_state_dict"
],
"title": "Parent"
},
"comment": {
"default": "",
"description": "A comment about this weights entry, for example how these weights were created.",
"title": "Comment",
"type": "string"
}
},
"required": [
"source"
],
"title": "model.v0_5.WeightsEntryDescrBase",
"type": "object"
}
Fields:
-
sha256(Sha256 | None) -
source(Annotated[FileSource, AfterValidator(wo_special_file_name)]) -
authors(list[Author] | None) -
parent(Annotated[WeightsFormat | None, Field(examples=['pytorch_state_dict'])]) -
comment(str)
Validators:
-
_validate
authors
pydantic-field
¤
authors: list[Author] | None = None
Authors
Either the person(s) that have trained this model resulting in the original weights file.
(If this is the initial weights entry, i.e. it does not have a parent)
Or the person(s) who have converted the weights to this weights format.
(If this is a child weight, i.e. it has a parent field)
comment
pydantic-field
¤
comment: str = ''
A comment about this weights entry, for example how these weights were created.
parent
pydantic-field
¤
parent: Annotated[
WeightsFormat | None,
Field(examples=["pytorch_state_dict"]),
] = None
The source weights these weights were converted from.
For example, if a model's weights were converted from the pytorch_state_dict format to torchscript,
The pytorch_state_dict weights entry has no parent and is the parent of the torchscript weights.
All weight entries except one (the initial set of weights resulting from training the model),
need to have this field.
source
pydantic-field
¤
source: Annotated[
FileSource, AfterValidator(wo_special_file_name)
]
Source of the weights file.
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
download
¤
download(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
alias for .get_reader
Source code in src/bioimageio/spec/_internal/io.py
372 373 374 375 376 377 378 379 380 381 | |
get_reader
¤
get_reader(
*,
progressbar: ProgressbarLike
| Callable[[], ProgressbarLike]
| bool
| None = None,
)
open the file source (download if needed)
Source code in src/bioimageio/spec/_internal/io.py
361 362 363 364 365 366 367 368 369 370 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
validate_sha256
¤
validate_sha256(force_recompute: bool = False) -> None
validate the sha256 hash value of the source file
Source code in src/bioimageio/spec/_internal/io.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | |
WithHalo
pydantic-model
¤
Bases: Node
Show JSON schema:
{
"$defs": {
"SizeReference": {
"additionalProperties": false,
"description": "A tensor axis size (extent in pixels/frames) defined in relation to a reference axis.\n\n`axis.size = reference.size * reference.scale / axis.scale + offset`\n\nNote:\n1. The axis and the referenced axis need to have the same unit (or no unit).\n2. Batch axes may not be referenced.\n3. Fractions are rounded down.\n4. If the reference axis is `concatenable` the referencing axis is assumed to be\n `concatenable` as well with the same block order.\n\nExample:\nAn unisotropic input image of w*h=100*49 pixels depicts a phsical space of 200*196mm\u00b2.\nLet's assume that we want to express the image height h in relation to its width w\ninstead of only accepting input images of exactly 100*49 pixels\n(for example to express a range of valid image shapes by parametrizing w, see `ParameterizedSize`).\n\n>>> w = SpaceInputAxis(id=AxisId(\"w\"), size=100, unit=\"millimeter\", scale=2)\n>>> h = SpaceInputAxis(\n... id=AxisId(\"h\"),\n... size=SizeReference(tensor_id=TensorId(\"input\"), axis_id=AxisId(\"w\"), offset=-1),\n... unit=\"millimeter\",\n... scale=4,\n... )\n>>> print(h.size.get_size(h, w))\n49\n\n\u21d2 h = w * w.scale / h.scale + offset = 100 * 2mm / 4mm - 1 = 49",
"properties": {
"tensor_id": {
"description": "tensor id of the reference axis",
"maxLength": 32,
"minLength": 1,
"title": "TensorId",
"type": "string"
},
"axis_id": {
"description": "axis id of the reference axis",
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"tensor_id",
"axis_id"
],
"title": "model.v0_5.SizeReference",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"halo": {
"description": "The halo should be cropped from the output tensor to avoid boundary effects.\nIt is to be cropped from both sides, i.e. `size_after_crop = size - 2 * halo`.\nTo document a halo that is already cropped by the model use `size.offset` instead.",
"minimum": 1,
"title": "Halo",
"type": "integer"
},
"size": {
"$ref": "#/$defs/SizeReference",
"description": "reference to another axis with an optional offset (see [SizeReference][])",
"examples": [
{
"axis_id": "a",
"offset": 5,
"tensor_id": "t"
}
]
}
},
"required": [
"halo",
"size"
],
"title": "model.v0_5.WithHalo",
"type": "object"
}
Fields:
-
halo(Annotated[int, Ge(1)]) -
size(Annotated[SizeReference, Field(examples=[{'tensor_id': 't', 'axis_id': 'a', 'offset': 5}])])
halo
pydantic-field
¤
halo: Annotated[int, Ge(1)]
The halo should be cropped from the output tensor to avoid boundary effects.
It is to be cropped from both sides, i.e. size_after_crop = size - 2 * halo.
To document a halo that is already cropped by the model use size.offset instead.
size
pydantic-field
¤
size: Annotated[
SizeReference,
Field(
examples=[
{"tensor_id": "t", "axis_id": "a", "offset": 5}
]
),
]
reference to another axis with an optional offset (see SizeReference)
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ZeroMeanUnitVarianceDescr
pydantic-model
¤
Bases: NodeWithExplicitlySetFields
Subtract mean and divide by variance.
Examples:
Subtract tensor mean and variance - in YAML
preprocessing:
- id: zero_mean_unit_variance
>>> preprocessing = [ZeroMeanUnitVarianceDescr()]
Show JSON schema:
{
"$defs": {
"ZeroMeanUnitVarianceKwargs": {
"additionalProperties": false,
"description": "key word arguments for [ZeroMeanUnitVarianceDescr][]",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize each sample independently leave out the 'batch' axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"eps": {
"default": 1e-06,
"description": "epsilon for numeric stability: `out = (tensor - mean) / (std + eps)`.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
}
},
"title": "model.v0_5.ZeroMeanUnitVarianceKwargs",
"type": "object"
}
},
"additionalProperties": false,
"description": "Subtract mean and divide by variance.\n\nExamples:\n Subtract tensor mean and variance\n - in YAML\n ```yaml\n preprocessing:\n - id: zero_mean_unit_variance\n ```\n - in Python\n >>> preprocessing = [ZeroMeanUnitVarianceDescr()]",
"properties": {
"id": {
"const": "zero_mean_unit_variance",
"title": "Id",
"type": "string"
},
"kwargs": {
"$ref": "#/$defs/ZeroMeanUnitVarianceKwargs"
}
},
"required": [
"id"
],
"title": "model.v0_5.ZeroMeanUnitVarianceDescr",
"type": "object"
}
Fields:
-
id(Literal['zero_mean_unit_variance']) -
kwargs(ZeroMeanUnitVarianceKwargs)
implemented_id
class-attribute
¤
implemented_id: Literal["zero_mean_unit_variance"] = (
"zero_mean_unit_variance"
)
__pydantic_init_subclass__
classmethod
¤
__pydantic_init_subclass__(**kwargs: Any) -> None
Source code in src/bioimageio/spec/_internal/common_nodes.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
ZeroMeanUnitVarianceKwargs
pydantic-model
¤
Bases: KwargsNode
key word arguments for ZeroMeanUnitVarianceDescr
Show JSON schema:
{
"additionalProperties": false,
"description": "key word arguments for [ZeroMeanUnitVarianceDescr][]",
"properties": {
"axes": {
"anyOf": [
{
"items": {
"maxLength": 16,
"minLength": 1,
"title": "AxisId",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.\nFor example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')\nresulting in a tensor of equal shape normalized per channel, specify `axes=('batch', 'x', 'y')`.\nTo normalize each sample independently leave out the 'batch' axis.\nDefault: Scale all axes jointly.",
"examples": [
[
"batch",
"x",
"y"
]
],
"title": "Axes"
},
"eps": {
"default": 1e-06,
"description": "epsilon for numeric stability: `out = (tensor - mean) / (std + eps)`.",
"exclusiveMinimum": 0,
"maximum": 0.1,
"title": "Eps",
"type": "number"
}
},
"title": "model.v0_5.ZeroMeanUnitVarianceKwargs",
"type": "object"
}
Fields:
-
axes(Annotated[Sequence[AxisId] | None, Field(examples=[('batch', 'x', 'y')])]) -
eps(Annotated[float, Interval(gt=0, le=0.1)])
axes
pydantic-field
¤
The subset of axes to normalize jointly, i.e. axes to reduce to compute mean/std.
For example to normalize 'batch', 'x' and 'y' jointly in a tensor ('batch', 'channel', 'y', 'x')
resulting in a tensor of equal shape normalized per channel, specify axes=('batch', 'x', 'y').
To normalize each sample independently leave out the 'batch' axis.
Default: Scale all axes jointly.
eps
pydantic-field
¤
eps: Annotated[float, Interval(gt=0, le=0.1)] = 1e-06
epsilon for numeric stability: out = (tensor - mean) / (std + eps).
__contains__
¤
__contains__(item: str) -> bool
Source code in src/bioimageio/spec/_internal/common_nodes.py
460 461 | |
__getitem__
¤
__getitem__(item: str) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
454 455 456 457 458 | |
dict_from_kwargs
classmethod
¤
dict_from_kwargs(
*args: P.args, **kwargs: P.kwargs
) -> dict[str, Any]
Source code in src/bioimageio/spec/_internal/node.py
93 94 95 96 97 98 | |
get
¤
get(item: str, default: Any = None) -> Any
Source code in src/bioimageio/spec/_internal/common_nodes.py
451 452 | |
model_validate
classmethod
¤
model_validate(
obj: Any | Mapping[str, Any],
*,
strict: bool | None = None,
extra: Literal["allow", "ignore", "forbid"]
| None = None,
from_attributes: bool | None = None,
context: ValidationContext
| Mapping[str, Any]
| None = None,
by_alias: bool | None = None,
by_name: bool | None = None,
) -> Self
Validate a pydantic model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Any | Mapping[str, Any]
|
The object to validate. |
required |
|
bool | None
|
Whether to raise an exception on invalid fields. |
None
|
|
bool | None
|
Whether to extract data from object attributes. |
None
|
|
ValidationContext | Mapping[str, Any] | None
|
Additional context to pass to the validator. |
None
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the object failed validation. |
Returns:
| Type | Description |
|---|---|
Self
|
The validated description instance. |
Source code in src/bioimageio/spec/_internal/node.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
convert_axes
¤
convert_axes(
axes: str,
*,
shape: Sequence[int]
| _ParameterizedInputShape_v0_4
| _ImplicitOutputShape_v0_4,
tensor_type: Literal["input", "output"],
halo: Sequence[int] | None,
size_refs: Mapping[_TensorName_v0_4, Mapping[str, int]],
)
Source code in src/bioimageio/spec/model/v0_5.py
2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 | |
generate_covers
¤
generate_covers(
inputs: Sequence[tuple[InputTensorDescr, NDArray[Any]]],
outputs: Sequence[
tuple[OutputTensorDescr, NDArray[Any]]
],
) -> list[FileDescr]
Source code in src/bioimageio/spec/model/v0_5.py
4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 | |
get_halos
¤
get_halos(
tensors: Mapping[TensorId, TensorDescr],
) -> dict[TensorId, dict[AxisId, tuple[int, int]]]
Get all input and output halos from tensor descriptions.
Note
- Input halos are to be padded
- Output halos are to be cropped
Source code in src/bioimageio/spec/model/v0_5.py
2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 | |
validate_tensors
¤
validate_tensors(
tensors: Mapping[
TensorId, tuple[TensorDescr, NDArray[Any] | None]
],
tensor_origin: Literal[
"source", "test_tensor"
] = "source",
*,
pad_inputs: bool | Literal["allow"] = True,
crop_outputs: bool | Literal["allow"] = True,
)
Validate all inputs (and optionally output tensors) against their tensor descriptions.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Mapping[TensorId, tuple[TensorDescr, NDArray[Any] | None]]
|
Mapping of tensor id to a tuple of tensor description and optional numpy array. |
required |
|
Literal['source', 'test_tensor']
|
String to use in error messages to indicate the origin of the tensors being validated. |
'source'
|
|
bool | Literal['allow']
|
Wether to apply/allow padding of inputs before shape comparison |
True
|
|
bool | Literal['allow']
|
Wether to apply/allow cropping of outputs before shape comparison. |
True
|
Source code in src/bioimageio/spec/model/v0_5.py
2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 | |