LeRobot documentation

Haritaları ve Boş Kameraları Yeniden Adlandır

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

Haritaları ve Boş Kameraları Yeniden Adlandır

Bir robot politikasıyla eğitim, değerlendirme veya kayıt yaptığınızda, veri setiniz veya ortamınız gözlemleri bir anahtar kümesi altında (ör. observation.images.front, observation.images.eagle) sağlarken, politikanız başka bir küme bekler (ör. observation.images.image, observation.images.image2). Yeniden adlandırma haritası, politika veya veri kaynağını değiştirmeden bu boşluğu kapatır.

Kapsam: Yeniden adlandırma haritası yalnızca observation anahtarlarını (görseller ve durum) yeniden adlandırır. Eylem anahtarları etkilenmez.

Gözlem anahtarlarının neden her zaman eşleşmediği

Policies, önceden eğitilmiş yapılandırmalarına gömülü olan sabit bir girdi özellik adı setine sahiptir. Örneğin:

  • pi0fast-libero, observation.images.base_0_rgb ve observation.images.left_wrist_0_rgb bekler.
  • xvla-base, observation.images.image, observation.images.image2 ve observation.images.image3 bekler.

Veri setiniz tamamen farklı adlar kullanıyor olabilir (ör. observation.images.front, observation.images.eagle, observation.images.glove) ve değerlendirme ortamınız da başka bir set kullanıyor olabilir. Politika yapılandırmasını düzenlemek veya veri setindeki sütunları yeniden adlandırmak yerine, bir yeniden adlandırma haritası geçirirsiniz: kaynak anahtarları, politikanın beklediği anahtarlara eşleyen bir JSON sözlüğü. Yeniden adlandırma, ön işleyici hattının içinde gerçekleştiği için politika her zaman beklediği anahtarları görür.

Yeniden adlandırma haritasını kullanma

Haritalamayı komut satırında bir JSON dizgesi olarak iletin. Sözleşme her zaman şudur:

--rename_map='{"source_key": "policy_key", ...}'

burada source_key, veri setinin veya ortamın sağladığı anahtarı, policy_key ise politikanın beklediği anahtarı ifade eder.

Yalnızca listelenen anahtarlar yeniden adlandırılır; diğer her şey değiştirilmeden geçer. Girdilerin sırası önemli değildir.

Desteklenen politikalar: PI0, PI05, PI0Fast, SmolVLA ve XVLA.

Eğitim

lerobot/xvla-base modelini observation.images.front, observation.images.eagle ve observation.images.glove altında görüntüler içeren bir veri setinde ince ayar yaptığınızı varsayalım. XVLA, observation.images.image, observation.images.image2 ve observation.images.image3 bekler:

lerobot-train \
  --dataset.repo_id=YOUR_DATASET \
  --output_dir=./outputs/xvla_training \
  --job_name=xvla_training \
  --policy.path="lerobot/xvla-base" \
  --policy.repo_id="HF_USER/xvla-your-robot" \
  --policy.dtype=bfloat16 \
  --policy.action_mode=auto \
  --steps=20000 \
  --policy.device=cuda \
  --policy.freeze_vision_encoder=false \
  --policy.freeze_language_encoder=false \
  --policy.train_policy_transformer=true \
  --policy.train_soft_prompts=true \
  --rename_map='{"observation.images.front": "observation.images.image", "observation.images.eagle": "observation.images.image2", "observation.images.glove": "observation.images.image3"}'

Değerlendirme

observation.images.base_0_rgb ve observation.images.left_wrist_0_rgb bekleyen bir politika (ör. pi0fast-libero), ancak LIBERO ortamı observation.images.image ve observation.images.image2 döndürüyor:

lerobot-eval \
  --policy.path=lerobot/pi0fast-libero \
  --env.type=libero \
  ... \
  --rename_map='{"observation.images.image": "observation.images.base_0_rgb", "observation.images.image2": "observation.images.left_wrist_0_rgb"}'

Alternatif: politika yapılandırmasını doğrudan düzenleyin

Her zaman aynı veri setini veya ortamı kullanıyorsanız, gözlem anahtarlarının veri kaynağınızla eşleşmesi için politikanın config.json dosyasını düzenleyebilirsiniz. Bu durumda yeniden adlandırma haritasına gerek kalmaz.

Taviz: politika yapılandırmasını değiştirmek, onu tek bir veri kaynağına bağlar. Yeniden adlandırma haritası, tek bir politikanın birçok veri seti ve ortamda kullanılabilir kalmasını sağlar.

Boş kameralar: politikanın beklediğinden daha az görüntü

Bazı politikalar, sabit sayıda görüntü girdisi için oluşturulmuştur. Veri setiniz daha az kameraya sahipse, model mimarisini değiştirmek yerine politika yapılandırmasında empty_cameras değerini ayarlayabilirsiniz.

Nasıl çalışır

empty_cameras=N ayarlandığında, politika yapılandırmasına N yer tutucu görüntü özelliği eklenir; bunların adları:

observation.images.empty_camera_0
observation.images.empty_camera_1
...

Çalışma zamanında, bu anahtarların batch içinde karşılık gelen verisi yoktur. Politika, bunları maskelenmiş sahte tensörlerle doldurur (SigLIP tabanlı görme kodlayıcıları için -1 ile dolgu yapılmış, sıfır dikkat maskesine sahip), böylece ek görüntü yuvaları eğitim ve çıkarım sırasında fiilen yok sayılır.

Örnek

XVLA-base üç görsel girişe sahiptir ve varsayılan olarak empty_cameras=0 değerine ayarlıdır. Veri setinizde yalnızca iki kamera var:

  1. --policy.empty_cameras=1 ayarlayın.
  2. Yapılandırma üçüncü bir anahtar ekler: observation.images.empty_camera_0.
  3. İki gerçek kameranız için yeniden adlandırma haritasını olduğu gibi kullanın.
  4. Üçüncü slot maskelenmiştir — veri setinizde sahte görsellere gerek yoktur.

Hızlı başvuru

HedefNe yapılmalı
Veri seti anahtarları ≠ politika anahtarları--rename_map='{"dataset_key": "policy_key", ...}'
Env anahtarları ≠ politika anahtarları (değerlendirme)--rename_map='{"env_key": "policy_key", ...}'
Farklı anahtarlarla rollout (çıkarsama)--rename_map='{"source_key": "policy_key", ...}'.
Politika tarafından beklenenden daha az kamera--policy.empty_cameras=N (PI0, PI05, PI0Fast, SmolVLA, XVLA tarafından desteklenir)
Yeniden adlandırma haritası geçmekten kaçınınPolitikanın config.json dosyasını düzenleyerek anahtarlarının veri kaynağınızla eşleşmesini sağlayın
Update on GitHub