LeRobot documentation

مجموعات البيانات

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

مجموعات البيانات

LeRobotDataset هو التنسيق الذي تقرأ منه جميع سكربتات LeRobot وتكتب إليه. إنه واعٍ بالمقاطع (episodes)، ويفكّ تشفير ملاحظات الفيديو على نحو فوري، ويتبادل البيانات مع Hugging Face Hub.

راجع استخدام LeRobotDataset لمعرفة التنسيق والعمليات الشائعة، ونقل مجموعات البيانات الكبيرة للترحيل، والأدوات لسطر الأوامر.

LeRobotDataset

فئة lerobot.datasets.LeRobotDataset

< >

( repo_id: strroot: str | pathlib.Path | None = Noneepisodes: list[int] | None = Noneepisode_filter: collections.abc.Callable[[dict], bool] | None = Noneimage_transforms: collections.abc.Callable | None = Nonedelta_timestamps: dict[str, list[float]] | None = Nonetolerance_s: float = 0.0001revision: str | None = Noneforce_cache_sync: bool = Falsedownload_videos: bool = Truevideo_backend: str | None = Nonereturn_uint8: bool = Falsedepth_output_unit: str = 'mm'batch_encoding_size: int = 1rgb_encoder: lerobot.configs.video.RGBEncoderConfig | None = Nonedepth_encoder: lerobot.configs.video.DepthEncoderConfig | None = Noneencoder_threads: int | None = Nonestreaming_encoding: bool = Falseencoder_queue_maxsize: int = 30repo_type: str = 'dataset'token: str | bool | None = Nonevideo_decoder_cache_size: int | None = None )

add_frame

< >

( frame: dict )

المعاملات

  • frame — قاموس (Dict) يربط بين أسماء الميزات وقيمها لهذا الإطار. يجب أن يتضمن مفتاح 'task'. يتم تحويل تينسورات Torch إلى numpy.

يرفع

RuntimeError

  • RuntimeError — إذا كان مجموعة البيانات للقراءة فقط (لا يوجد كاتب).

أضِف إطارًا واحدًا إلى مخزن الحلقة الحالية.

يُفوّض إلى DatasetWriter.add_frame. يجب أن يكون مجموعة البيانات في وضع الكتابة (تم إنشاؤها عبر create أو resume).

clear_episode_buffer

< >

( delete_images: bool = True )

المعاملات

  • delete_images — إذا كانت True، فاحذف أيضًا ملفات الصور المؤقتة التي كُتبت على القرص للحلقة الحالية.

يرفع

RuntimeError

  • RuntimeError — إذا كان مجموعة البيانات للقراءة فقط (لا يوجد كاتب).

تجاهل مخزن الحلقة الحالي دون حفظه.

يُفوّض إلى DatasetWriter.clear_episode_buffer. مفيد للتخلّي عن حلقة تسجيل فاشلة أو منقطعة.

clear_image_transforms

< >

( )

إزالة التحويل المطبّق على الملاحظات البصرية.

إنشاء

< >

( repo_id: strfps: intfeatures: dictroot: str | pathlib.Path | None = Nonerobot_type: str | None = Noneuse_videos: bool = Truetolerance_s: float = 0.0001image_writer_processes: int = 0image_writer_threads: int = 0video_backend: str | None = Nonebatch_encoding_size: int = 1rgb_encoder: lerobot.configs.video.RGBEncoderConfig | None = Nonedepth_encoder: lerobot.configs.video.DepthEncoderConfig | None = Nonemetadata_buffer_size: int = 10streaming_encoding: bool = Falseencoder_queue_maxsize: int = 30encoder_threads: int | None = Nonevideo_files_size_in_mb: int | None = Nonedata_files_size_in_mb: int | None = None )

المعاملات

  • repo_id — معرّف المستودع، وهو عادةً '{hf_user}/{dataset_name}'.
  • fps — عدد الإطارات في الثانية المستخدمة أثناء جمع البيانات.
  • features — قاموس مواصفات الميزات الذي يربط أسماء الميزات ببياناتها الوصفية المتعلقة بالنوع والشكل.
  • root — المجلد المحلي لتخزين مجموعة البيانات. القيمة الافتراضية هي $HF_LEROBOT_HOME/{repo_id}.
  • robot_type — نص اختياري لنوع الروبوت يُخزَّن في البيانات الوصفية.
  • use_videos — إذا كانت True، تُخزَّن الأنماط البصرية كفيديوهات بصيغة MP4. إذا كانت False، تُخزَّن كصور.
  • tolerance_s — سماحية مزامنة الطوابع الزمنية بالثواني.
  • image_writer_processes — عدد العمليات الفرعية لكتابة الصور بشكل غير متزامن. 0 يعني استخدام الخيوط فقط.
  • image_writer_threads — عدد الخيوط لكتابة الصور بشكل غير متزامن.
  • video_backend — واجهة فك ترميز الفيديو (تُستخدم عند القراءة مرة أخرى).
  • batch_encoding_size — عدد الحلقات التي يجب تجميعها قبل ترميز مقاطع الفيديو دفعة واحدة. 1 تعني الترميز فورًا.
  • rgb_encoder — إعدادات مُشفِّر الفيديو للكاميرات (المُشفِّر، الجودة، إلخ). عندما تكون None، يُستخدم rgb_encoder_defaults().
  • depth_encoder — إعدادات مُشفِّر الفيديو لكاميرات العمق (المُشفِّر، الجودة، إلخ). عندما تكون None، يُستخدم depth_encoder_defaults().
  • encoder_threads — عدد خيوط المُشفِّر (عالمي). None يسمح للمُرمِّز بالقرار.
  • metadata_buffer_size — عدد سجلات بيانات وصفية للحلقات التي يتم تخزينها مؤقتًا قبل الكتابة إلى parquet.
  • streaming_encoding — إذا كان True، يتم ترميز إطارات الفيديو في الوقت الفعلي أثناء الالتقاط بدلاً من كتابة الصور أولاً.
  • encoder_queue_maxsize — الحد الأقصى لإطارات التخزين المؤقت لكل كاميرا عند استخدام الترميز البثي.

أنشئ LeRobotDataset جديدًا من الصفر لتسجيل البيانات.

يعيد مجموعة بيانات بوضع الكتابة مع DatasetWriter نشط. استخدم add_frame / save_episode لملئها، ثم finalize عند الانتهاء.

finalize

< >

( )

اغلق جميع المهام المعلّقة وأغلق الكاتبات.

يجب استدعاؤها بعد جمع البيانات/تحويلها، وإلا فلن يتم كتابة بيانات الترويسة في ملفات parquet وستكون مجموعة البيانات غير صالحة.

قابلة للتكرار — آمنة للاستدعاء عدة مرات. يعمل DatasetWriter.del كشبكة أمان في حال لم يتم استدعاؤها صراحةً أبدًا.

get_raw_item

< >

( idx )

احصل على إطار خام دون تطبيق تحويلات الصور.

على عكس __getitem__، تُعيد هذه الدالة صف مجموعة بيانات HF الخام عند الفهرس المحدد دون توسيع طوابع الوقت الدلتا، أو فك ترميز الفيديو، أو تحويلات الصور.

has_pending_frames

< >

( )

تحقق مما إذا كانت هناك إطارات غير محفوظة في مخزن الحلقات.

push_to_hub

< >

( branch: str | None = Nonetags: list | None = Nonelicense: str | None = 'apache-2.0'tag_version: bool = Truepush_videos: bool = Trueprivate: bool | None = Noneallow_patterns: list[str] | str | None = Noneupload_large_folder: bool = False**card_kwargs )

المعاملات

  • branch — فرع اختياري للضغط إليه. يتم إنشاؤه من المراجعة الحالية إذا لم يكن موجودًا.
  • tags — قائمة اختيارية من الوسوم لبطاقة مجموعة البيانات.
  • license — معرّف الترخيص لبطاقة مجموعة البيانات.
  • tag_version — إذا كانت True، يتم إنشاء وسم Git (Git tag) لإصدار قاعدة الأكواد الحالية.
  • push_videos — إذا كانت False، يتم تجاوز رفع مجلد videos/.
  • private — إذا كانت True، يتم إنشاء مستودع خاص. إذا كانت None (الافتراضي)، يُرجع الأمر إلى الإعداد الافتراضي للمنظمة على Hub (يؤثر على المنظمات فقط).
  • allow_patterns — نمط أو أنماط Glob تحدّد الملفات التي سيتم رفعها.
  • upload_large_folder — يُحفظ من أجل التوافق مع الإصدارات السابقة ويُتجاهل. يتولى upload_folder معالجة مجموعات البيانات بجميع أحجامها.
  • **card_kwargs — حُجج إضافية تُمرَّر إلى إنشاء بطاقة مجموعة البيانات.

ارفع مجموعة البيانات إلى Hugging Face Hub.

ينشئ المستودع إذا لم يكن موجوداً، ويرفع جميع ملفات مجموعة البيانات (مع استبعاد مقاطع الفيديو اختيارياً)، وينشئ بطاقة مجموعة البيانات، ويضع وسماً على المراجعة الحالية بإصدار قاعدة الشيفرة الحالي.

استئناف

< >

( repo_id: strroot: str | pathlib.Path | None = Nonetolerance_s: float = 0.0001revision: str | None = Noneforce_cache_sync: bool = Falsevideo_backend: str | None = Nonebatch_encoding_size: int = 1rgb_encoder: lerobot.configs.video.RGBEncoderConfig | None = Nonedepth_encoder: lerobot.configs.video.DepthEncoderConfig | None = Noneencoder_threads: int | None = Noneimage_writer_processes: int = 0image_writer_threads: int = 0streaming_encoding: bool = Falseencoder_queue_maxsize: int = 30token: str | bool | None = None )

المعاملات

  • repo_id — معرّف المستودع الخاص بمجموعة البيانات الموجودة.
  • root — المجلد المحلي للبيانات. عند تقديمه، تُحمَّل بيانات Hub مباشرةً إلى هذا المجلد. عند إهماله، تستخدم عمليات التحميل من Hub ذاكرة مؤقتة آمنة للإصدارات تحت $HF_LEROBOT_HOME/hub.
  • tolerance_s — سماحية مزامنة الطوابع الزمنية بالثواني.
  • revision — نسخة Git (فرع، وسم، أو تجزئة التزام). الافتراضي هو وسم إصدار قاعدة الأكواد الحالية.
  • force_cache_sync — إذا كانت True، يتم إعادة تنزيل البيانات الوصفية من Hub حتى لو كان هناك مخزن مؤقت محلي.
  • video_backend — واجهة فك ترميز الفيديو لقراءة البيانات.
  • batch_encoding_size — عدد الحلقات التي يجب تجميعها قبل ترميز مقاطع الفيديو دفعة واحدة.
  • rgb_encoder — إعدادات مُشفِّر الفيديو للكاميرات (المُشفِّر، الجودة، إلخ). عندما تكون None، يُستخدم rgb_encoder_defaults().
  • depth_encoder — إعدادات مُشفِّر الفيديو لكاميرات العمق (المُشفِّر، الجودة، إلخ). عندما تكون None، يُستخدم depth_encoder_defaults().
  • encoder_threads — عدد خيوط المُشفِّر (عالمي). None يسمح للمُرمِّز بالقرار.
  • image_writer_processes — عمليات فرعية لكتابة الصور بشكل غير متزامن.
  • image_writer_threads — عدد الخيوط (Threads) لكتابة الصور بشكل غير متزامن.
  • streaming_encoding — إذا كان True، يتم ترميز الفيديو في الوقت الفعلي أثناء الالتقاط.
  • encoder_queue_maxsize — الحد الأقصى للإطارات المخزنة مؤقتًا لكل كاميرا للبث.
  • token — رمز المصادقة المستخدم إذا كان يجب تنزيل البيانات الوصفية من Hub. لا يتم الاحتفاظ بالرمز على مثيل مجموعة البيانات.

استئناف التسجيل على مجموعة بيانات موجودة مسبقًا.

تحمّل البيانات الوصفية من مجموعة بيانات موجودة (محلية أو على Hub) وتُنشئ DatasetWriter لإضافة حلقات جديدة. لا يتم تحميل مجموعة بيانات HF الأساسية حتى يتم استدعاء finalize وقراءة البيانات في الخطوة التالية.

save_episode

< >

( episode_data: dict | None = Noneparallel_encoding: bool = True )

المعاملات

  • episode_data — قاموس حلقات مُعد مسبقًا (اختياري). إذا كان None، يتم استخدام مخزن الحلقات الداخلي الذي تمت تعبئته بواسطة add_frame.
  • parallel_encoding — إذا كان True ووجود عدة كاميرات، يتم ترميز مقاطع الفيديو بالتوازي باستخدام مجموعة عمليات.

يرفع

RuntimeError

  • RuntimeError — إذا كان مجموعة البيانات للقراءة فقط (لا يوجد كاتب).

احفظ مخزن الحلقة الحالية على القرص.

يُفوّض إلى DatasetWriter.save_episode. يُشفّر مقاطع الفيديو، ويكتب بيانات parquet، ويحدّث البيانات الوصفية. يُعاد ضبط مخزن الحلقة بعد ذلك.

select_columns

< >

( column_names: str | list[str] )

اختر أعمدة محددة من مجموعة البيانات الأساسية.

يُفيد في استخراج تسلسلات الإجراءات أثناء إعادة التشغيل دون تحميل جميع الميزات. يعيد datasets.Dataset يحتوي على الأعمدة المطلوبة فقط.

set_image_transforms

< >

( image_transforms: collections.abc.Callable | None )

استبدل التحويل المطبّق على الملاحظات البصرية.

LeRobotDatasetMetadata

فئة lerobot.datasets.LeRobotDatasetMetadata

< >

( repo_id: strroot: str | pathlib.Path | None = Nonerevision: str | None = Noneforce_cache_sync: bool = Falsemetadata_buffer_size: int = 10repo_type: typing.Literal['dataset', 'bucket'] = 'dataset'token: str | bool | None = None )

حاوية البيانات الوصفية لمجموعة بيانات LeRobot.

يدير ملفات info.json وstats.json وtasks.parquet وepisodes/ بصيغة parquet التي تصف بنية مجموعة البيانات ومحتواها وإحصاءاتها.

إنشاء

< >

( repo_id: strfps: intfeatures: dictrobot_type: str | None = Noneroot: str | pathlib.Path | None = Noneuse_videos: bool = Truemetadata_buffer_size: int = 10chunks_size: int | None = Nonedata_files_size_in_mb: int | None = Nonevideo_files_size_in_mb: int | None = None )

المعاملات

  • repo_id — معرّف المستودع (مثل 'user/my_dataset').
  • fps — عدد الإطارات في الثانية المستخدمة أثناء جمع البيانات.
  • features — قاموس مواصفات الميزات الذي يربط أسماء الميزات ببياناتها الوصفية المتعلقة بالنوع والشكل.
  • robot_type — نص اختياري لنوع الروبوت يُخزَّن في البيانات الوصفية.
  • root — المجلد المحلي للمجموعة. القيمة الافتراضية هي $HF_LEROBOT_HOME/{repo_id}. يجب ألا يكون موجودًا مسبقًا.
  • use_videos — إذا كانت True، تُرمَّز الأنماط البصرية كفيديوهات بصيغة MP4.
  • metadata_buffer_size — عدد سجلات بيانات وصفية للحلقات التي يتم تخزينها مؤقتًا قبل الكتابة إلى parquet.
  • chunks_size — الحد الأقصى لعدد الملفات في كل مجلد شريحة. يستخدم None القيمة الافتراضية.
  • data_files_size_in_mb — الحد الأقصى لحجم ملف parquet بالميغابايت. None يستخدم القيمة الافتراضية.
  • video_files_size_in_mb — الحد الأقصى لحجم ملف الفيديو بالميجابايت. None يستخدم القيمة الافتراضية.

إنشاء بيانات وصفية لـ LeRobot dataset جديد من الصفر.

يُهيّئ ملف info.json على القرص باستخدام مخطط الميزات وإعدادات مجموعة البيانات المُقدَّمة. لا يتم كتابة بيانات الحلقات بعد.

ensure_readable

< >

( )

الضمان بأن البيانات الوصفية محمّلة بالكامل لعمليات القراءة.

عملية غير قابلة للتغيير — عندما تكون البيانات الوصفية موجودة بالفعل في الذاكرة، فإن هذه العملية تتكون من فحص واحد is None. استدعِ هذه العملية قبل الانتقال من وضع الكتابة إلى وضع القراءة على نفس المثيل.

filter_episodes

< >

( predicate: Callablecandidates: list[int] | None = None )

المعاملات

  • predicate — شرط على صفوف بيانات كل حلقة يُستخدم لاختيار الحلقات.
  • candidates — قائمة اختيارية لمؤشرات الحلقات لتقييد التقييم عليها.

تصفية الحلقات التي تستوفي بياناتها الوصفية شرطًا محددًا.

finalize

< >

( )

امسح مخزن البيانات الوصفية وأغلق كاتب parquet.

قابلة للتكرار — آمنة للاستدعاء عدة مرات.

get_chunk_settings

< >

( )

احصل على إعدادات حجم الملف الحالي وحجم المقطع.

get_data_file_path

< >

( ep_index: int )

المعاملات

  • ep_index — فهرس الحلقة يبدأ من الصفر.

يرفع

IndexError

  • IndexError — إذا كان ep_index خارج النطاق.

إرجاع مسار ملف parquet النسبي لمؤشر الحلقة المحدد.

get_task_index

< >

( task: str )

عند تقديم مهمة بلغة طبيعية، تُرجع task_index الخاصة بها إذا كانت المهمة موجودة مسبقًا في مجموعة البيانات، وإلا تُرجع None.

get_video_file_path

< >

( ep_index: intvid_key: str )

المعاملات

  • ep_index — فهرس الحلقة يبدأ من الصفر.
  • vid_key — مفتاح الميزة الذي يحدد تدفق الفيديو (مثل 'observation.images.laptop').

يرفع

IndexError أو ValueError

  • IndexError — إذا كان ep_index خارج النطاق.
  • ValueError — إذا لم يخزّن مجموعة البيانات أي مقاطع فيديو (لا يوجد قالب video_path).

إرجاع مسار ملف الفيديو النسبي للحلقة ومفتاح الفيديو المحددين.

rescale_depth_stats

< >

( output_unit: str )

أعد قياس إحصاءات ميزات العمق في مكانها من الوحدة المسجلة إلى output_unit.

تُخزَّن إحصاءات العمق بالوحدة التي سُجِّلت بها الإطارات (features[key]["info"]["depth_unit"])، بينما تُعاد الإطارات بالوحدة output_unit عند القراءة. وهذا يُحوِّل إدخالات الإحصاءات التي تحمل وحدة قياس حتى تتطابق الإحصاءات مع الإطارات التي يراها المستهلكون.

save_episode

< >

( episode_index: intepisode_length: intepisode_tasks: listepisode_stats: dictepisode_metadata: dict )

المعاملات

  • episode_index — فهرس يبدأ من الصفر للحلقة التي يتم حفظها.
  • episode_length — عدد الإطارات في هذا الحلقة.
  • episode_tasks — قائمة بأوصاف المهام الخاصة بهذا الحلقة.
  • episode_stats — إحصائيات لكل ميزة في هذا الحلقة.
  • episode_metadata — بيانات وصفية إضافية (مؤشرات المقاطع/الملفات، نطاقات الإطارات، طوابع زمنية للفيديو، إلخ).

حفظ بيانات وصفية للحلقة، وتحديث معلومات مجموعة البيانات، وتجميع الإحصاءات.

تكتب بيانات الوصف الخاصة بالحلقة إلى كاتب parquet المخزّن مؤقتًا، وتزيد عدادات إجمالي الحلقات/الإطارات في info.json، وتدمج إحصائيات الحلقة في إحصائيات مجموعة البيانات الجارية.

save_episode_tasks

< >

( tasks: list )

المعاملات

  • tasks — قائمة بأوصاف المهام الفريدة بلغة طبيعية.

يرفع

ValueError

  • ValueError — إذا احتوى tasks على عناصر مكررة.

سجّل المهام الخاصة بالحلقة الحالية واحفظها على القرص.

تُمنح المهام الجديدة التي لا توجد مسبقًا في مجموعة البيانات فهارس مهام متسلسلة وتُضاف إلى ملف parquet الخاص بالمهام.

update_chunk_settings

< >

( chunks_size: int | None = Nonedata_files_size_in_mb: int | None = Nonevideo_files_size_in_mb: int | None = None )

المعاملات

  • chunks_size — الحد الأقصى لعدد الملفات في كل مجلد شريحة. إذا كانت القيمة None، تُحافظ على القيمة الحالية.
  • data_files_size_in_mb — الحد الأقصى لحجم ملفات parquet للبيانات بالميغابايت. إذا كانت القيمة None، تُحافظ على القيمة الحالية.
  • video_files_size_in_mb — الحد الأقصى لحجم ملفات الفيديو بالميغابايت. إذا كانت القيمة None، يُحافظ على القيمة الحالية.

تحديث إعدادات حجم المقطع وحجم الملف بعد إنشاء مجموعة البيانات.

يتيح ذلك للمستخدمين تخصيص تنظيم التخزين دون تعديل منشئ الكائن. تتحكم هذه الإعدادات في كيفية تقسيم الحلقات وحجم الملفات الذي يمكن أن تصل إليه قبل إنشاء ملفات جديدة.

update_video_info

< >

( video_key: str | None = Nonevideo_encoder: lerobot.configs.video.VideoEncoderConfig | None = Nonepreserve_keys: collections.abc.Iterable[str] | None = None )

المعاملات

  • video_key — إذا تم تقديمه، حدّث مفتاح الفيديو هذا فقط. وإلا حدّث جميع مفاتيح الفيديو في مجموعة البيانات.
  • video_encoder — إعدادات المُشفِّر المستخدمة لإنتاج الفيديوهات. عند تقديمها، تُسجَّل حقولها كإدخالات video.<field> إلى جانب إدخالات video.* المشتقة من البث (انظر get_video_info).
  • preserve_keys — مفاتيح تُحفظ قيمها الحالية بدلاً من إعادة حسابها. None (الافتراضي) يعيد حساب كل المفاتيح.

املأ أو حدّث معلومات الفيديو الخاصة بكل ميزة في info.json.

تحذير: تكتب هذه الدالة معلومات من مقاطع الفيديو الخاصة بالحلقة الأولى، مع افتراض ضمني أن جميع مقاطع الفيديو قد تم ترميزها بنفس الطريقة. كما يعني هذا أنها تفترض وجود الحلقة الأولى.

يعيد دائمًا فحص مقاطع الفيديو ويكتب فوق المعلومات الموجودة لكل مفتاح يُعاد حسابه. يحدد preserve_keys المفاتيح التي يجب الاحتفاظ بقيمها الحالية (مثل العناصر الجوهرية للبيانات مثل is_depth_map ومعاملات تكميم العمق) بدلاً من إعادة حسابها.

MultiLeRobotDataset

فئة lerobot.datasets.MultiLeRobotDataset

< >

( repo_ids: listroot: str | pathlib.Path | None = Noneepisodes: dict | None = Noneimage_transforms: collections.abc.Callable | None = Nonedelta_timestamps: dict[str, list[float]] | None = Nonetolerances_s: dict | None = Nonedownload_videos: bool = Truevideo_backend: str | None = Nonetoken: str | bool | None = None )

مجموعة بيانات تتكون من عدة LeRobotDataset أساسية.

تُدمج مجموعات LeRobotDataset الأساسية بشكل فعلي، وتتبنى هذه الفئة جزءًا كبيرًا من بنية واجهة LeRobotDataset.

clear_image_transforms

< >

( )

أزل التحويل من هذا مجموعة البيانات وأبنائها.

set_image_transforms

< >

( image_transforms: collections.abc.Callable | None )

استبدل التحويل لهذا مجموعة البيانات وأبنائها.

StreamingLeRobotDataset

فئة lerobot.datasets.StreamingLeRobotDataset

< >

( repo_id: strroot: str | pathlib.Path | None = Noneepisodes: list[int] | None = Noneimage_transforms: collections.abc.Callable[[torch.Tensor], torch.Tensor] | None = Nonedelta_timestamps: dict[str, list[float]] | None = Nonetolerance_s: float = 0.0001revision: str | None = Noneforce_cache_sync: bool = Falsestreaming: bool | None = Nonebuffer_size: int = 1000max_num_shards: int = 16seed: int = 42rng: numpy.random._generator.Generator | None = Noneshuffle: bool = Truereturn_uint8: bool = Falsedepth_output_unit: str = 'mm'video_backend: str | None = Nonedata_root: str | pathlib.Path | None = Noneepisode_pool_size: int | None = Noneprefetch_episodes: int = 8byte_budget_gb: float = 8.0repeat: bool = Falserepo_type: typing.Literal['dataset', 'bucket'] = 'dataset'token: str | bool | None = Nonedecode_threads: int = 2decoded_queue_size: int = 8video_decoder_cache_size: int | None = Nonenative_http_connections: int | None = Nonenative_http_subranges: int = 1sidecar_lock_timeout_s: float = 1800sampling_strategy: lerobot.streaming.episode_pool.StreamingSamplingStrategy | str = <StreamingSamplingStrategy.REMAINING: 'remaining'> )

قارئ بثّ مُقيّد بنطاق الحلقة لمجموعات بيانات LeRobot.

يُخزَّن البيانات الوصفية محليًا، بينما يقرأ كل رتبة (rank) فقط صفوف Parquet ونطاقات البايتات من ملفات MP4 اللازمة للحلقات الكاملة التي يملكها. مع وجود N من عمّالي DataLoader، يملك كل عامل جزءًا منفصلًا ومتوازنًا من حيث الإطارات من حلقات الرتبة، مع حوض حلقات خاص به و1/N من ميزانية البايتات. لكل عملية Python GIL خاص بها، لذا يقوم N من العمال بفك ترميز العينات وتجميعها بالتوازي. ملكية الحلقات منفصلة، وكل إطار مُختار يُقدَّم مرة واحدة بالضبط في كل تكرار. تُحل ملفات MP4 الجانبية تلقائيًا وتُبنى في ذاكرة تخزين مؤقت محلية مفهرسة بمفتاح المراجعة (revision) عند غيابها.

مثال:

الاستخدام الأساسي:

from lerobot.datasets.streaming_dataset import StreamingLeRobotDataset

# Create a streaming dataset with delta timestamps
delta_timestamps = {
    "observation.image": [-1.0, -0.5, 0.0],  # 1 sec ago, 0.5 sec ago, current
    "action": [0.0, 0.1, 0.2],  # current, 0.1 sec future, 0.2 sec future
}

dataset = StreamingLeRobotDataset(
    repo_id="your-dataset-repo-id",
    delta_timestamps=delta_timestamps,
)

# Iterate over the dataset
for i, item in enumerate(dataset):
    print(f"Sample {i}: Episode {item['episode_index']} Frame {item['frame_index']}")
    # item will contain stacked frames according to delta_timestamps
    if i >= 10:
        break

load_state_dict

< >

( state: dict )

المعاملات

  • state (dict[str, int]) — الحقبة المحلية للرتبة، وإزاحة العينة، وحجم الدفعة. القيم الافتراضية للمفاتيح الناقصة هي 0 و0 و1.

يرفع

ValueError

  • ValueError — إذا كانت قيمة الحقبة أو الإزاحة سالبة، أو إذا لم تكن حجم الدفعة موجبًا.

استعادة موضع المرساة الخاص بالمُتسلسل التالي دون جلب العينات المتجاوزة.

Note: يتطلب إعادة إنتاج ترتيب المرساة استخدام نفس مجموعة البيانات، والبذرة، والعينة، وإعدادات المسبح، وطوبولوجيا التوزيع، وعدد عمال DataLoader. عند وجود عدة عمال، يكون الإزاحة هي إزاحة الرتبة في دفعات كاملة من batch_size؛ حيث يستنتج كل عامل جزءه الخاص، لأن DataLoader يأخذ الدفعات من عماله بالتناوب. لا تُستعاد تحويلات الصور العشوائية بواسطة هذه الطريقة.

num_episodes_for_rank

< >

( rank: intworld_size: int )

إرجاع عدد الحلقات الكاملة التي يملكها كل رتبة تدريب.

num_frames_for_rank

< >

( rank: intworld_size: intnum_workers: int )

إرجاع الإطارات التي يملكها رتبة تدريب واحدة تحت تقسيم متوازن للحلقات الكاملة.

set_data_parallel_shard

< >

( rank: intworld_size: int )

ثبّت رتبة التوازي في البيانات وحجم العالم، قبل torch.distributed والبيئة.

A spawned DataLoader worker has no initialized torch.distributed; the values reach it by pickling.

set_epoch

< >

( epoch: int )

المعاملات

  • epoch (int) — حقبة التغطية المستخدمة لبذر خطة العينة التالية عند تمكين الخلط.

يرفع

ValueError

  • ValueError — إذا كانت قيمة epoch سالبة.

اختر حقبة غير سالبة وأعد تعيين إزاحة الاستئناف المحلية للرتبة.

state_dict

< >

( ) → dict[str, int]

يعيد

dict[str, int]

الحقبة، إزاحة العينة المُنتَجة، وحجم الدفعة عند الاستئناف.

إرجاع الموقع المحلي الحالي للمرتبة الخاصة بالمُكرِّر.

ملاحظة: مع ميزة الاستباق (prefetch) في DataLoader، قد لا تكون العينات المُخرَجة قد استُهلكت بعد في التدريب. يعيد خط أنابيب التدريب تحديد موقعه من الخطوات المكتملة بدلاً من ذلك. عند استخدام عدة عمّال DataLoader، يحتفظ كل عملية عامل بموقعها الخاص فقط.

Update on GitHub