Page 1 of 1

Warum ist das Dateifeld leer (Array ([], dType = int8)) beim Laden von Datensatz mit mlx.data?

Posted: 14 Feb 2025, 06:59
by Anonymous
Ich verwende mlx.data, um einen Bilddatensatz zu laden, in dem jede Klasse durch einen separaten Ordner dargestellt wird. Meine Funktionsdateien_and_classes generiert eine Liste von Wörterbüchern, die Dateipfade und entsprechende Beschriftungen enthalten. < /P>
Hier ist mein Code: < /p>

Code: Select all

from pathlib import Path
import mlx.data as dx

def files_and_classes(root: Path):
"""Load the files and classes from an image dataset that contains one folder per class."""
images = list(root.rglob("*.jpg"))
categories = [p.relative_to(root).parent.name for p in images]
category_set = set(categories)
category_map = {c: i for i, c in enumerate(sorted(category_set))}

return [
{
"file": str(p.relative_to(root)).encode("ascii"),
"label": category_map[c]
}
for c, p in zip(categories, images)
]

sample = files_and_classes(Path('/Users/kimduhyeon/Desktop/d2f/mlx/val'))
print(sample[0])

dset = dx.buffer_from_vector(sample)
print(dset[0])
< /code>
Erwartete Ausgabe:
Ich habe erwartet, dass jeder Eintrag in DSET den richtigen Dateipfad als Byte -Zeichenfolge und die entsprechende Beschriftung enthält. < /p>
Tatsächliche Ausgabe:
Das erste Wörterbuch druckt korrekt aus der Probe [0]: < /p>
{'file': b'film/000017270027.jpg', 'label': 1}

Bei dem Zugriff auf DSET [0] ist das Dateifeld jedoch leer:

Code: Select all

{'label': array(1), 'file': array([], dtype=int8)}

Frage:
Warum wird das Dateifeld als leeres Array angezeigt (Array ([], dType = int8)) Bei konvertiertem in einen mlx.data -Puffer? Gibt es eine bestimmte Datentypanforderung für mlx.data.buffer_from_vector? Wie soll ich das Feld Datei richtig formatieren, um dieses Problem zu vermeiden?