# After Training

Artık modelinizi dağıtıma yakınsınız — bu aşama, "sayılardan" gerçek iş akışınızda çalışan bir modele geçiş yaptığınız yerdir.

***

## 1) Eğitim Çıktılarınızı Bulun (weights + config + names)

Eğitim bittiğinde, günlük/durum mesajları çıktıların nereye yazıldığını gösterir.

AugeLab Studio'da eğitim çıktıları genellikle veri kümesi klasörünüzün yanında şu isimle oluşturulur:

**XXX\_config**

( burada XXX veri kümesi klasörünüzün adıdır ).

Tipik yapı:

```
XXX_config/
    XXX.names
    XXX.cfg
    backup/
        XXX_last.weights  (varsa)
        XXX_best.weights  (varsa)
```

En azından şu dosyaları birlikte saklamalısınız:

* Ağırlık dosyası: `.weights` (bazı iş akışlarında best vs last şeklinde dosyalar olabilir)
* Konfigürasyon dosyası: `.cfg`
* Sınıf isimleri dosyası: `.names`

> UYARI: Eğitimden sonra `.names` dosyanızdaki sınıf isimlerini yeniden adlandırmayın/sırayı değiştirmeyin, veya etiket ID'lerini eşlemezseniz sorun olur. Sınıf sırası, etiket ID'leriyle eşleşmelidir.

<details>

<summary><strong>Hangi weights kullanılmalı: best mi last mı?</strong></summary>

Eğer eğitim sırasında mAP raporlanıyorsa, birçok YOLO/Darknet iş akışı "şimdiye kadarki en iyi" bir checkpoint tutar.

* mAP yükselip sonra düştüğünde (overfitting) **best** dosyasını kullanın.
* Eğitim mAP yükselmeye devam ederken stabil şekilde sona erdiyse **last** dosyasını kullanın.

Eğer bir “best” dosyanız yoksa önce final weights dosyasını kullanıp doğrulayın.

</details>

***

## 2) Dağıtıma Almadan Önce Modeli Doğrulayın

Modeli üretim mantığına bağlamadan önce hızlı bir doğrulama yapın.

Önerilen doğrulama setleri:

* **Validation set**: Gerçek hayatı temsil eden 30–100 resim (iyi/kötü aydınlatma, bulanıklık, karışıklık, köşe durumlar)
* **Kısa videolar veya görüntüler**: Gerçek kameradan kısa bir video (sabit bir kameraya dağıtım yapacaksanız)

Kontrol etmeniz gerekenler:

* Model doğru nesneyi tutarlı şekilde tespit ediyor mu
* Kutular mantıksal olarak "yeterince iyi" mi (mükemmel olmaları gerekmez)
* False positive'ler kabul edilebilir mi (veya filtrelenebilir mi)
* Nadir ama önemli vakalar tespit ediliyor mu

> UYARI: Yüksek mAP değerleri bile üretimde başarısız olabilir eğer doğrulama bölümü çok küçük ya da çok temizse. Doğrulama seti / gerçek görüntü kontrolü bunu önler.

***

## 3) Modeli Studio'ya Yükleyin (Inference)

AugeLab Studio'da bir sonraki adım genellikle inference çalıştıran bir `.pmod` senaryosu oluşturmak (veya güncellemek) olur.

### A) Use “Object Detection - Custom” (recommended)

Bu düğümü, kendi YOLO/Darknet ile eğittiğiniz modeli iş akışı içinde çalıştırmak istediğinizde kullanın.

İş akışı:

1. Grafiğinize **Object Detection - Custom** bloğunu ekleyin (AI Applications kategorisi).
2. Blok arayüzünde:
   * **Open Weight File** üzerine tıklayın ve `.weights` dosyanızı seçin
   * **Open Config File** üzerine tıklayın ve `.cfg` dosyanızı seçin
   * **Open Class File** üzerine tıklayın ve `.names` dosyanızı seçin
3. Tespit etmek istediğiniz sınıfları seçin (onay kutusu listesi).
4. **Confidence Threshold** değerini ayarlayın (başlangıç aralığı 0.5–0.8 civarı ve buradan ince ayar yapın).
5. Blok girişine bir görüntü kaynağı bağlayın ve çıkış görüntüsünü önizleyin.

Mantığınızda kullanabileceğiniz çıktılar:

* Çizilmiş tespitlerle birlikte çıkış görüntüsü
* Object Count
* Object Locations / Sizes
* Object Classes
* Rectangles

> BİLGİ: Eğer “Object Detection - Custom” kullanılamıyorsa, build'inizde CUDA/OpenCV DNN desteği etkin olmayabilir. Aşağıdaki CPU bloğunu deneyin veya Module Downloader’dan gerekli modülleri yükleyin (bakınız ai-training.md).

### B) Use “Object Detection - Custom (CPU)” (fallback)

GPU hızlandırması olmadan aynı iş akışını kullanmak istiyorsanız bu bloğu kullanın.

* CPU inference kullanır, bu yüzden daha yavaş olacaktır.
* Kurulum aynı: weights + cfg + names.

***

## 4) Eşikleri Ayarlayın (gerçekten önemli olan)

Çoğu "dağıtım kalitesi" iyileştirmesi, eğitimi uzatmaktan ziyade eşik (threshold) ayarlamadan gelir.

Pratik adımlar:

* Çok fazla false positive görüyorsanız confidence threshold'u artırın.
* Nesneleri kaçırıyorsanız confidence threshold'u düşürün.
* "Golden set" ve en az bir gerçek kamera klibi üzerinde değerlendirme yapın.

> UYARI: Tek bir görüntü üzerinde ayar yapmayın. Her zaman küçük bir set üzerinde ayarlayın; aksi halde eşiğinizi tek bir sahneye "aşırı uyumlu" hale getirmiş olursunuz.

***

## 5) Paylaşma / Tekrarlanabilirlik İçin Paketleyin

Modelin daha sonra (veya başka biri tarafından) kullanılabilir olmasını istiyorsanız, bilinçli şekilde paketleyin.

Önerilen klasör düzeni:

```
my_model_release/
    model.weights
    model.cfg
    classes.names
    README.txt
    validation_set/   (isteğe bağlı)
```

README'de yazılması gerekenler:

* Modelin hangi veri kümesiyle (sürüm/tarih) eğitildiği
* Sınıfların anlamı (belirsizlik varsa açıklama)
* Önerilen confidence threshold aralığı
* Bilinen başarısızlık durumları (parlama, çok küçük nesneler, aşırı örtülme)

> BİLGİ: Eğer `.pmod` senaryonuz bu kaynaklara referans veriyorsa, senaryonun taşınabilir kalması için kaynakları göreli proje kaynakları olarak tutmayı düşünün. Ayrıca bakınız: headless-studio (missing-resource load behavior).

***

## 6) Üretimde Başarısız Olursa (sonraki adımlar)

Model dağıtıldıktan sonra başarısız olursa, düzeltme genellikle şu adımlardan biridir (öncelik sırasına göre):

1. **Başarısızlıkları toplayın** (miss/false-positive gösteren kareleri kaydedin)
2. **Doğru şekilde label'layın**
3. **Yeni verilerle yeniden eğitin veya fine-tune yapın**

İşte modellerin daha dayanıklı hale gelmesinin yolu budur.

<details>

<summary><strong>Yaygın hata modları ve hızlı çözümler</strong></summary>

* Arka plan dokusunda false positive → o ortama ait negatif örnekler ekleyin
* Küçük nesnelerde kaçırma → giriş boyutunu arttırın (GPU izin veriyorsa) ve daha fazla küçük nesne örneği toplayın
* Parlama/ bulanıklık altında kaçırma → bu vakaları kasıtlı olarak veri kümesine ekleyin (sadece augmentasyona güvenmeyin)
* Kutular sürekli gevşek/sık ise → anotasyon stil tutarlılığını düzeltin, sonra yeniden eğitin

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/turkish/one-cikan-ozellikler/train-custom-ai-models-with-training-window/after-training.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
