-
Notifications
You must be signed in to change notification settings - Fork 150
Open
Description
I get an error when I try to convert between two schemas. One sample definition has channels_first=True and the other has channels_first=False.
Minimal reproducible example:
import numpy as np
import polars as pl
from datumaro.experimental import Sample, Dataset
from datumaro.experimental.categories import LabelCategories
from datumaro.experimental.fields import image_field
class Sample1(Sample):
image: np.ndarray = image_field(dtype=pl.UInt8, channels_first=True)
class Sample2(Sample):
image: np.ndarray = image_field(dtype=pl.UInt8, channels_first=False)
dataset = Dataset(Sample1)
s = Sample1(image=np.random.randint(0, 255, size=(3,32,32)))
dataset.append(s)
dataset.convert_to_schema(Sample2)Error:
Traceback (most recent call last):
File "<python-input-0>", line 18, in <module>
dataset.convert_to_schema(Sample2)
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/home/leoll2/training_extensions/application/backend/.venv/lib/python3.13/site-packages/datumaro/experimental/dataset.py", line 432, in convert_to_schema
conversion_paths, inferred_categories = find_conversion_path(self._schema, target_schema)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/leoll2/training_extensions/application/backend/.venv/lib/python3.13/site-packages/datumaro/experimental/converters/registry.py", line 690, in find_conversion_path
semantic_converters, updated_target_state = _find_conversion_path_for_semantic(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
start_state, target_state, semantic
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/leoll2/training_extensions/application/backend/.venv/lib/python3.13/site-packages/datumaro/experimental/converters/registry.py", line 495, in _find_conversion_path_for_semantic
raise ConversionError(error_msg)
datumaro.experimental.converters.base.ConversionError: No conversion path found.
Available source fields: [ImageField(semantic=<Semantic.Default: 1>, dtype=UInt8, channels_first=True, format='RGB')]
Required target fields: [ImageField(semantic=<Semantic.Default: 1>, dtype=UInt8, channels_first=False, format='RGB')]
Missing converters for type/dtype conversions:
- 'image': ImageField(semantic=<Semantic.Default: 1>, dtype=UInt8, channels_first=True, format='RGB') → ImageField(semantic=<Semantic.Default: 1>, dtype=UInt8, channels_first=False, format='RGB')
Metadata
Metadata
Assignees
Labels
No labels