Referenz
Python-SDK
Das SDK ist eine dünne Schicht über der Release-Struktur: Es löst Versionen auf, prüft Prüfsummen und liefert Episoden und Frames. Alles, was es tut, geht auch mit pyarrow und einem Video-Reader.
Technische Beispiele zeigen die vorgesehene Struktur. Zugang, Endpunkte und unterstützte Funktionen werden im jeweiligen Projekt bestätigt.
Installation
Der Client wird über einen privaten Index verteilt. Die Zugangsdaten für den Index werden zusammen mit dem Datensatzzugang vergeben — installierbar ist das Paket also nur für Lizenznehmer.
pip install curatrix --index-url https://pkg.curatrix.de/simpleAuthentifizierung
Das SDK liest CURATRIX_API_KEY aus der Umgebung. Schlüssel sind auf die von Ihnen gehaltenen Datensätze, Versionen und Lizenzstufen beschränkt; ein Schlüssel erweitert diesen Umfang nie.
export CURATRIX_API_KEY="ck_live_..."Datensatz öffnen und iterieren
from curatrix import Dataset
# Pin the version. Omitting it resolves to the newest licensed release,
# which makes a training run non-reproducible.
ds = Dataset.open("electrical-assembly", version="1.3.0")
print(ds.schema_version, ds.episode_count, ds.accepted_hours)
for episode in ds.episodes(outcome="failure", environment="workshop"):
frames = episode.frames(stream="head", fps=10) # lazy, decoded on demand
recovery = [s for s in episode.subtasks if s.label == "recover"]
if recovery:
print(episode.id, len(frames), recovery[0].start_s)Vorgeschlagene Splits verwenden
train = ds.split("train")
evaluation = ds.split("eval")
assert set(train.contributors).isdisjoint(evaluation.contributors)Ohne das SDK
Nichts in einem Release setzt unseren Client voraus. Die Tabellen sind Parquet, das Video ist MP4.
import pyarrow.parquet as pq
episodes = pq.read_table("episodes/episodes.parquet").to_pandas()
spans = pq.read_table("episodes/annotations.parquet").to_pandas()
failures = episodes[episodes.outcome == "failure"]
print(spans[spans.episode_id.isin(failures.episode_id)]
.groupby("label").size().sort_values(ascending=False))