LeRobot documentation
İşleyiciler
İşleyiciler
İşleyiciler, bir robot, bir veri seti ve bir politika arasındaki veri dönüştürme katmanıdır. Bir boru hattı, ProcessorStep zinciridir; her adım, hem verinin hem de özellik sözleşmesinin nasıl dönüştürüleceğini bildirir.
Kavramlar için Robot İşlemcilerine Giriş, bir adım yazmak için Kendi işlemcinizi uygulayın ve bir iş akışı beklenmedik davranış sergilediğinde İşlemci iş akışınızı hata ayıklayın başlıklarına bakın.
ProcessorStep
Veri işleme hattındaki tek bir adım için soyut temel sınıf.
Her adım, bir veri geçişinde dönüşümünü gerçekleştirmek için __call__ yöntemini ve veri özelliklerinin şeklini veya türünü nasıl değiştirdiğini açıklamak için transform_features yöntemini uygulamak zorundadır.
Alt sınıflar, state_dict ve load_state_dict uygulayarak isteğe bağlı olarak durumlu olabilir.
Serileştirme için adım yapılandırmasını döndürür.
load_state_dict
< source >( state: dict[str, torch.Tensor] )
Adımın durumunu bir durum sözlüğünden yükler.
Varsa, işlemci adımının iç durumunu sıfırlar.
Gergisiz varlıkları kaydedin ve yapılandırıcı argümanlarını göreli yollara eşleyin.
Adımın durumunu (ör. öğrenilen parametreler, yürüyen ortalamalar) döndürür.
transform_features
< source >( features: dict[PipelineFeatureType, dict[str, PolicyFeature]] )
Bu adımın, pipeline özelliklerinin tanımını nasıl değiştirdiğini tanımlar.
Bu yöntem, gerçek verilerin işlenmesine gerek kalmadan, verinin boru hattından geçerken veri şekillerindeki, dtypes'lerindeki veya modalitelerindeki değişiklikleri izlemek için kullanılır.
DataProcessorPipeline
sınıf lerobot.processor.DataProcessorPipeline
< source >( steps: Sequence[ProcessorStep] = <factory>name: str = 'DataProcessorPipeline'to_transition: Callable[[TInput], EnvTransition] = <factory>to_output: Callable[[EnvTransition], TOutput] = <factory>before_step_hooks: list[Callable[[int, EnvTransition], None]] = <factory>after_step_hooks: list[Callable[[int, EnvTransition], None]] = <factory> )
Parametreler
- steps — Hattın (pipeline) bileşenini oluşturan
ProcessorStepnesnelerinin bir dizisi. - name — Hattın açıklayıcı adı.
- to_transition — Ham girdi verilerini standartlaştırılmış
EnvTransitionbiçimine dönüştürmek için bir işlev. - to_output — Son
EnvTransitionnesnesini istenen çıktı biçimine dönüştürmek için kullanılan bir işlev. - before_step_hooks — Her adım çalıştırılmadan önce çağrılacak fonksiyonların listesi.
- after_step_hooks — Her adım çalıştırıldıktan sonra çağrılacak fonksiyonların listesi.
Veri işleme için Hugging Face Hub ile entegre edilmiş ardışık bir pipeline.
Bu sınıf, birden fazla ProcessorStep örneğini bir araya getirerek tam bir veri işleme akışı oluşturur. Genel amaçlıdır; özel girdi ve çıktı tiplerine izin verir ve bu tipler to_transition ile to_output dönüştürücüler tarafından işlenir.
from_config
< source >( config: dict[str, Any]state_dict: dict[str, dict[str, torch.Tensor]] | None = Noneoverrides: dict[str, Any] | None = Noneto_transition: Callable[[TInput], EnvTransition] | None = Noneto_output: Callable[[EnvTransition], TOutput] | None = None )
Parametreler
- config — Kaydedilen işlemci JSON'ı ile aynı yapıya sahip bir yapılandırma sözlüğü.
- state_dict — Ek soneki olmayan durum anahtarına göre gruplanmış, isteğe bağlı bellek içi boru hattı durumu.
- overrides — Kayıt adı veya sınıf adına göre anahtarlanan isteğe bağlı yapılandırıcı geçersiz kılma tanımları.
- to_transition — Girdi verisinden
EnvTransition'e dönüştürmek için isteğe bağlı dönüştürücü. - to_output —
EnvTransition'ten çıktı verisine isteğe bağlı dönüştürücü.
Bellek içi bir yapılandırma ve isteğe bağlı durum tensörlerinden bir pipeline oluşturun.
from_pretrained
< source >( pretrained_model_name_or_path: str | Pathconfig_filename: strforce_download: bool = Falseresume_download: bool | None = Noneproxies: dict[str, str] | None = Nonetoken: str | bool | None = Nonecache_dir: str | Path | None = Nonelocal_files_only: bool = Falserevision: str | None = Noneoverrides: dict[str, Any] | None = Noneto_transition: Callable[[TInput], EnvTransition] | None = Noneto_output: Callable[[EnvTransition], TOutput] | None = None**kwargs )
Parametreler
- pretrained_model_name_or_path — Hugging Face Hub'daki depoyu tanımlayan kimlik, yerel bir dizine giden yol veya tek bir yapılandırma dosyasına giden yol.
- config_filename — Hattın JSON yapılandırma dosyasının adı. Birden fazla yapılandırma varken (ör. ön işleyici ve son işleyici) belirsizliği önlemek için her zaman gereklidir.
- force_download — Dosyaların (yeniden) indirilmesinin zorlanıp zorlanmayacağı.
- resume_download — Geriye dönük uyumluluk için korunur ve yok sayılır. İndirmeler otomatik olarak devam eder.
- proxies — Geriye dönük uyumluluk için korunur ve yok sayılır. Bunun yerine HTTP_PROXY ve HTTPS_PROXY kullanın.
- token — Özel Hub depoları için HTTP bearer yetkilendirmesi olarak kullanılacak jeton.
- cache_dir — İndirilen dosyaları saklamak için belirli bir önbellek klasörüne giden yol.
- local_files_only — True ise, Hub'dan dosya indirmekten kaçının.
- revision — Kullanılacak belirli model sürümü (ör. bir dal adı, etiket adı veya commit kimliği).
- overrides — Belirli adımların yapılandırmasını geçersiz kılmak için bir sözlük. Anahtarlar, adımın sınıf adıyla veya kayıt defteri adıyla eşleşmelidir.
- to_transition — Girdi verilerini
EnvTransitionnesnesine dönüştürmek için özel bir işlev. - to_output — Son
EnvTransition'ı çıktı biçimine dönüştürmek için özel bir işlev. - **kwargs — Ek argümanlar (kullanılmıyor).
Yükseltilen
FileNotFoundError veya ValueError veya ImportError veya KeyError veya ProcessorMigrationError
FileNotFoundError— Yapılandırma dosyası bulunamazsa.ValueError— Yapılandırma belirsizse veya örneklemeye başarısız olursa.ImportError— Bir adımın sınıfı içe aktarılamıyorsa.KeyError— Bir geçersiz kılma anahtarı, hattaki herhangi bir adımla eşleşmiyorsa.ProcessorMigrationError— Model, işlemci formatına taşınmayı gerektiriyorsa.
Bir yerel dizinden, tek bir dosyadan veya Hugging Face Hub deposundan bir pipeline yükler.
Bu yöntem, akıllı göç algılama özelliğine sahip basitleştirilmiş bir yükleme hattı uygular:
Basitleştirilmiş Yükleme Stratejisi:
Yapılandırma Yükleme (_load_config):
- Dizin: Dizin içinden belirtilen config_filename yükleyin
- Tek dosya: Dosyayı doğrudan yükle (config_filename yok sayılır)
- Hub deposu: Hub'dan belirtilen config_filename'i indir
Yapılandırma Doğrulama (_validate_loaded_config):
- Biçim doğrulama: Yapılandırmanın geçerli bir işlemci biçiminde olduğundan emin olun
- Göç algılama: Kullanıcıları eski LeRobot modellerini taşımak için yönlendirin
- Hataları netleştirin: Eyleme geçirilebilir hata mesajları sağlayın
Adım Oluşturma (_build_steps_with_overrides):
- Sınıf çözümleme: Kayıt defteri araması veya dinamik içe aktarmalar
- Birleştirme geçersiz kılma: Kullanıcı parametreleri kaydedilen yapılandırmayı geçersiz kılar
- Durum yükleme: Durumlu adımlar için .safetensors dosyalarını yükleyin
Doğrulama Geçersiz Kılma (_validate_overrides_used):
- Tüm kullanıcı geçersiz kılma ayarlarının uygulandığından emin olun (yazım hatalarını yakalayın)
- Mevcut anahtarlarla birlikte yardımcı hata mesajları sağlayın
Göç Algılama:
- Akıllı algılama: Eski LeRobot modellerini algılamak için JSON dosyalarını analiz eder
- Hassas hedefleme: Diğer HuggingFace modellerinde yanlış pozitifleri önler
- Net yönlendirme: Çalıştırılacak kesin geçiş komutunu sağlar
- Hata modu: Kullanıcı için net bir eylem sağlamak amacıyla her zaman ProcessorMigrationError fırlatır
Örnekleri Yükleme:
# Directory loading
pipeline = DataProcessorPipeline.from_pretrained("/models/my_model", config_filename="processor.json")
# Single file loading
pipeline = DataProcessorPipeline.from_pretrained(
"/models/my_model/processor.json", config_filename="processor.json"
)
# Hub loading
pipeline = DataProcessorPipeline.from_pretrained("user/repo", config_filename="processor.json")
# Multiple configs (preprocessor/postprocessor)
preprocessor = DataProcessorPipeline.from_pretrained(
"model", config_filename="policy_preprocessor.json"
)
postprocessor = DataProcessorPipeline.from_pretrained(
"model", config_filename="policy_postprocessor.json"
)Yazdırma Sistemi:
- Temel eşleştirme: Geçersiz kılma anahtarları olarak kayıt defteri adları veya sınıf adları kullanın
- Yapılandırma birleştirme: Kullanıcı geçersiz kılma işlemleri, kaydedilmiş yapılandırmaya önceliklidir
- Doğrulama: Tüm geçersiz kılma anahtarlarının gerçek adımlarla eşleştiğinden emin olun (yazım hatalarını yakalayın)
- Örnek: overrides={“NormalizeStep”: {“device”: “cuda”}}
JSON-serializable pipeline yapılandırmasını döndürür.
load_state_dict
< source >( state_dict: dict[str, dict[str, torch.Tensor]] )
Hatta durum tensörlerini mevcut adımlara yükleyin.
process_action
< source >( action: PolicyAction | RobotAction | EnvAction )
Geçişin yalnızca eylem kısmını işleme hattından geçirir.
process_complementary_data
< source >( complementary_data: dict[str, Any] )
Hattın bir geçişinde yalnızca tamamlayıcı veri kısmını işler.
Pipeline üzerinden yalnızca bir geçişin done bayrağını işler.
Yalnızca geçişin bilgi sözlüğünü iş akışından geçirir.
process_observation
< source >( observation: RobotObservation )
Geçişin yalnızca gözlem kısmını işleme hattından geçirir.
Geçişin yalnızca ödül kısmını işleme hattından geçirir.
process_truncated
< source >( truncated: bool | torch.Tensor )
Hattın (pipeline) geçişinde yalnızca kırpılmış (truncated) bayrağını işler.
register_after_step_hook
< source >( fn: Callable[[int, EnvTransition], None] )
Her adımın ardından çağrılacak bir işlev kaydeder.
register_before_step_hook
< source >( fn: Callable[[int, EnvTransition], None] )
Her adımın öncesinde çağrılacak bir işlev kaydeder.
Hattın tüm durumlu adımlarının durumunu sıfırlar.
save_pretrained
< source >( save_directory: str | Path | None = Nonerepo_id: str | None = Nonepush_to_hub: bool = Falsecard_kwargs: dict[str, Any] | None = Noneconfig_filename: str | None = None**push_to_hub_kwargs )
Parametreler
- save_directory — Hattın (pipeline) kaydedileceği dizin. None ise, HF_LEROBOT_HOME/processors/{sanitized_pipeline_name} dizinine kaydedilir.
- repo_id — Hub'daki depoyunuzun kimliği. Yalnızca
push_to_hub=trueise kullanılır. - push_to_hub — Nesnenizi kaydettikten sonra Hugging Face Hub'a gönderip göndermeyeceğinizi belirtir.
- card_kwargs — Kartı özelleştirmek için kart şablonuna iletilen ek argümanlar.
- config_filename — JSON yapılandırma dosyasının adı. None ise, bir ad, hattın
nameözniteliğinden üretilir. - **push_to_hub_kwargs — push_to_hub metoduna iletilen ek anahtar kelime argümanları.
Hattın yapılandırmasını ve durumunu bir dizine kaydeder.
Bu yöntem, hattın yapısını (ad ve adımlar) tanımlayan bir JSON yapılandırma dosyası oluşturur. Her durumlu adım için, durum sözlüğünü içeren bir .safetensors dosyası da kaydedilir.
Durum anahtarına göre gruplandırılmış pipeline durum tensörlerini döndürür.
Verileri adım adım işler ve her aşamada geçişi üretir.
Bu, verinin iş akışından geçerken ara durumunu hata ayıklamak ve denetlemek için kullanışlı bir üreteç (generator) yöntemidir.
transform_features
< source >( initial_features: dict[PipelineFeatureType, dict[str, PolicyFeature]] )
Özellik dönüşümlerini tüm adımlardan sırayla uygular.
Bu yöntem, bir özellik açıklama sözlüğünü her adımın transform_features yöntemi üzerinden ileterek, hattın gerçek herhangi bir veri işlemeden çıktı özellik spesifikasyonunu statik olarak belirlemesine olanak tanır.
unregister_after_step_hook
< source >( fn: Callable[[int, EnvTransition], None] )
Bir ‘after_step’ kancasını kaydını siler.
unregister_before_step_hook
< source >( fn: Callable[[int, EnvTransition], None] )
‘before_step’ kancasını kaydeder.