# İş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ş](../introduction_processors), bir adım yazmak için [Kendi işlemcinizi uygulayın](../implement_your_own_processor) ve bir iş akışı beklenmedik davranış sergilediğinde [İşlemci iş akışınızı hata ayıklayın](../debug_processor_pipeline) başlıklarına bakın.

## ProcessorStep[[lerobot.processor.ProcessorStep]]

#### lerobot.processor.ProcessorStep[[lerobot.processor.ProcessorStep]]

```python
lerobot.processor.ProcessorStep()
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L150)

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.

#### get_config[[lerobot.processor.ProcessorStep.get_config]]

```python
get_config()
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L193)

**Dönüş:**

Yapılandırma parametrelerinin JSON-serializable sözlüğü.

Serileştirme için adım yapılandırmasını döndürür.

#### load_state_dict[[lerobot.processor.ProcessorStep.load_state_dict]]

```python
load_state_dict(state: dict[str, torch.Tensor])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L209)

**Parametreler:**

state : Durum tensörlerinin sözlüğü.

Adımın durumunu bir durum sözlüğünden yükler.

#### sıfırla[[lerobot.processor.ProcessorStep.reset]]

```python
reset()
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L221)

Varsa, işlemci adımının iç durumunu sıfırlar.

#### save_artifacts[[lerobot.processor.ProcessorStep.save_artifacts]]

```python
save_artifacts(save_directory: Path)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L217)

Gergisiz varlıkları kaydedin ve yapılandırıcı argümanlarını göreli yollara eşleyin.

#### state_dict[[lerobot.processor.ProcessorStep.state_dict]]

```python
state_dict()
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L201)

**Dönüş:**

Durum adlarını tensörlere eşleyen bir sözlük.

Adımın durumunu (ör. öğrenilen parametreler, yürüyen ortalamalar) döndürür.

#### transform_features[[lerobot.processor.ProcessorStep.transform_features]]

```python
transform_features(features: dict[PipelineFeatureType, dict[str, PolicyFeature]])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L225)

**Parametreler:**

features : Gözlemler, eylemler vb. için giriş özelliklerini açıklayan bir sözlük.

**Dönüş:**

Bu adımın dönüşümü sonrasında çıktı özelliklerini açıklayan bir sözlük.

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ı boyunca akarken veri şekillerindeki, dtypes'lerindeki veya modalitelerindeki değişiklikleri izlemek için kullanılır.

## DataProcessorPipeline[[lerobot.processor.DataProcessorPipeline]]

#### lerobot.processor.DataProcessorPipeline[[lerobot.processor.DataProcessorPipeline]]

```python
lerobot.processor.DataProcessorPipeline(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>)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L273)

**Parametreler:**

steps : `ProcessorStep` nesnelerinden oluşan ve hattı oluşturan bir dizi.

name : Hattın açıklayıcı adı.

to_transition : Ham girdi verilerini standartlaştırılmış `EnvTransition` biçimine dönüştürmek için bir işlev.

to_output : Son `EnvTransition`'u istenen çıktı biçimine dönüştürmek için bir işlev.

before_step_hooks : Her adım çalıştırılmadan önce çağrılacak işlevlerin listesi.

after_step_hooks : Her adım çalıştırıldıktan sonra çağrılacak işlevlerin 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` ve `to_output` dönüştürücüler tarafından işlenir.

#### from_config[[lerobot.processor.DataProcessorPipeline.from_config]]

```python
from_config(config: dict[str, Any], state_dict: dict[str, dict[str, torch.Tensor]] | None = None, overrides: dict[str, Any] | None = None, to_transition: Callable[[TInput], EnvTransition] | None = None, to_output: Callable[[EnvTransition], TOutput] | None = None)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L792)

**Parametreler:**

config : Kaydedilen işlemci JSON'ı ile aynı yapıya sahip bir yapılandırma sözlüğü.

state_dict : Suffix'siz durum anahtarına göre gruplanmış isteğe bağlı bellek içi pipeline 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 isteğe bağlı dönüştürücü.

to_output : `EnvTransition`’dan çıktı verisine isteğe bağlı dönüştürücü.

**Dönüş:**

Yapılandırma ve isteğe bağlı durumdan oluşturulmuş bir işlemci hattı.

Bellek içi bir yapılandırma ve isteğe bağlı durum tensörlerinden bir pipeline oluşturun.

#### from_pretrained[[lerobot.processor.DataProcessorPipeline.from_pretrained]]

```python
from_pretrained(pretrained_model_name_or_path: str | Path, config_filename: str, force_download: bool = False, resume_download: bool | None = None, proxies: dict[str, str] | None = None, token: str | bool | None = None, cache_dir: str | Path | None = None, local_files_only: bool = False, revision: str | None = None, overrides: dict[str, Any] | None = None, to_transition: Callable[[TInput], EnvTransition] | None = None, to_output: Callable[[EnvTransition], TOutput] | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L647)

**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 mevcut olduğunda (ör. ön işleyici ve son işleyici) belirsizliği önlemek için her zaman gereklidir.

force_download : Dosyaların (yeniden) indirilmesini zorlayıp zorlamayacağı.

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ı depolamak 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 `EnvTransition`'e 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).

**Dönüş:**

Belirtilen yapılandırma ve durumla yüklenmiş bir `DataProcessorPipeline` örneği.

**Yükselen:** ``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**:
1. **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

2. **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

3. **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

4. **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**:
```python
# 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"}}

#### get_config[[lerobot.processor.DataProcessorPipeline.get_config]]

```python
get_config()
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L451)

**Dönüş:**

`save_pretrained()`'in JSON olarak yazdığı aynı içeriğe sahip bir sözlük.

JSON-serializable pipeline yapılandırmasını döndürür.

#### load_state_dict[[lerobot.processor.DataProcessorPipeline.load_state_dict]]

```python
load_state_dict(state_dict: dict[str, dict[str, torch.Tensor]])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L515)

**Parametreler:**

state_dict : Soneksiz durum anahtarlarını adım durum sözlüklerine eşleyen bir sözlük.

**Yükselen:** ``KeyError``

- ``KeyError`` -- Yüklemeye beklenen durum eksik veya beklenmedik ek durum bulunduysa.

Hatta durum tensörlerini mevcut adımlara yükleyin.

#### process_action[[lerobot.processor.DataProcessorPipeline.process_action]]

```python
process_action(action: PolicyAction | RobotAction | EnvAction)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1786)

**Parametreler:**

action : Eylem verileri.

**Dönüş:**

İşlenmiş eylem.

Geçişin yalnızca eylem kısmını işleme hattından geçirir.

#### process_complementary_data[[lerobot.processor.DataProcessorPipeline.process_complementary_data]]

```python
process_complementary_data(complementary_data: dict[str, Any])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1853)

**Parametreler:**

complementary_data : Tamamlayıcı veri sözlüğü.

**Dönüş:**

İşlenmiş tamamlayıcı veri sözlüğü.

Hattın bir geçişinde yalnızca tamamlayıcı veri kısmını işler.

#### process_done[[lerobot.processor.DataProcessorPipeline.process_done]]

```python
process_done(done: bool | torch.Tensor)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1814)

**Parametreler:**

done : done bayrağı.

**Dönüş:**

İşlenmiş tamamlandı bayrağı.

Pipeline üzerinden yalnızca bir geçişin done bayrağını işler.

#### process_info[[lerobot.processor.DataProcessorPipeline.process_info]]

```python
process_info(info: dict[str, Any])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1840)

**Parametreler:**

info : Bilgi sözlüğü.

**Dönüş:**

İşlenmiş bilgi sözlüğü.

Yalnızca geçişin bilgi sözlüğünü iş akışından geçirir.

#### process_observation[[lerobot.processor.DataProcessorPipeline.process_observation]]

```python
process_observation(observation: RobotObservation)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1773)

**Parametreler:**

observation : Gözlem sözlüğü.

**Dönüş:**

İşlenmiş gözlem sözlüğü.

Geçişin yalnızca gözlem kısmını işleme hattından geçirir.

#### process_reward[[lerobot.processor.DataProcessorPipeline.process_reward]]

```python
process_reward(reward: float | torch.Tensor)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1801)

**Parametreler:**

reward : Ödül değeri.

**Dönüş:**

İşlenmiş ödül.

Geçişin yalnızca ödül kısmını işleme hattından geçirir.

#### process_truncated[[lerobot.processor.DataProcessorPipeline.process_truncated]]

```python
process_truncated(truncated: bool | torch.Tensor)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1827)

**Parametreler:**

truncated : Kesilmiş bayrağı.

**Dönüş:**

İşlenmiş kırpma bayrağı.

Hattın (pipeline) geçişinde yalnızca kırpılmış (truncated) bayrağını işler.

#### register_after_step_hook[[lerobot.processor.DataProcessorPipeline.register_after_step_hook]]

```python
register_after_step_hook(fn: Callable[[int, EnvTransition], None])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1697)

**Parametreler:**

fn : Adım dizini ve mevcut geçişi kabul eden çağrılabilir bir nesne.

Her adımın ardından çağrılacak bir işlev kaydeder.

#### register_before_step_hook[[lerobot.processor.DataProcessorPipeline.register_before_step_hook]]

```python
register_before_step_hook(fn: Callable[[int, EnvTransition], None])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1673)

**Parametreler:**

fn : Adım dizini ve mevcut geçişi kabul eden çağrılabilir bir nesne.

Her adımın öncesinde çağrılacak bir işlev kaydeder.

#### sıfırla[[lerobot.processor.DataProcessorPipeline.reset]]

```python
reset()
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1721)

Hattın tüm durumlu adımlarının durumunu sıfırlar.

#### save_pretrained[[lerobot.processor.DataProcessorPipeline.save_pretrained]]

```python
save_pretrained(save_directory: str | Path | None = None, repo_id: str | None = None, push_to_hub: bool = False, card_kwargs: dict[str, Any] | None = None, config_filename: str | None = None, **push_to_hub_kwargs)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L595)

**Parametreler:**

save_directory : Hattın (pipeline) kaydedileceği dizin. None ise, HF_LEROBOT_HOME/processors/{sanitized_pipeline_name} konumuna kaydedilir.

repo_id : Hub'daki deposunuzun kimliği. Yalnızca `push_to_hub=true` ise kullanılır.

push_to_hub : Nesnenizi kaydettikten sonra Hugging Face Hub'a gönderilip gönderilmeyeceğini 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, ad, hattın `name` özniteliğinden üretilir.

- ****push_to_hub_kwargs** : push_to_hub yöntemine 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.

#### state_dict[[lerobot.processor.DataProcessorPipeline.state_dict]]

```python
state_dict()
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L488)

**Dönüş:**

Son eki olmayan durum anahtarlarını klonlanmış adım durum sözlüklerine eşleyen bir sözlük.

Durum anahtarına göre gruplandırılmış pipeline durum tensörlerini döndürür.

#### step_through[[lerobot.processor.DataProcessorPipeline.step_through]]

```python
step_through(data: TInput)
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L343)

**Parametreler:**

data : Girdi verileri.

**Üretir:**

Başlangıç durumuyla başlayan ve ardından her işleme adımından sonra oluşan `EnvTransition` nesnesi.

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[[lerobot.processor.DataProcessorPipeline.transform_features]]

```python
transform_features(initial_features: dict[PipelineFeatureType, dict[str, PolicyFeature]])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1750)

**Parametreler:**

initial_features : Başlangıç özelliklerini açıklayan bir sözlük.

**Dönüş:**

Tüm dönüşümlerden sonraki nihai özellik açıklaması.

Ö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[[lerobot.processor.DataProcessorPipeline.unregister_after_step_hook]]

```python
unregister_after_step_hook(fn: Callable[[int, EnvTransition], None])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1705)

**Parametreler:**

fn : Daha önce kaydedilen tam fonksiyon nesnesi.

**Yükselen:** ``ValueError``

- ``ValueError`` -- Hook listede bulunamazsa.

Bir 'after_step' kancasını kaydını siler.

#### unregister_before_step_hook[[lerobot.processor.DataProcessorPipeline.unregister_before_step_hook]]

```python
unregister_before_step_hook(fn: Callable[[int, EnvTransition], None])
```

[Kaynak](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/processor/pipeline.py#L1681)

**Parametreler:**

fn : Daha önce kaydedilen tam fonksiyon nesnesi.

**Yükselen:** ``ValueError``

- ``ValueError`` -- Hook listede bulunamazsa.

'before_step' kancasını kaydeder.

## PolicyProcessorPipeline[[lerobot.processor.DataProcessorPipeline]]

#### lerobot.processor.DataProcessorPipeline[[lerobot.processor.DataProcessorPipeline]]

```python
lerobot.processor.DataProcessorPipeline(*args, **kwargs)
```

