> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/turkish/temel-ozellikler/train-custom-ai-models-with-training-window/after-training.md).

# 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>
