Learn AI with Python · Ders

Yeniden Üretilebilirlik: Tohumlar, Yapılandırmalar ve Ortamlar

random.seed(), np.random.seed(), YAML yapılandırma dosyaları ve pip freeze ile ortam sürümlerini sabitleme.

3. ders / 413 adım

Yeniden Üretilebilirlik: Tohumlar, Yapılandırmalar ve Ortamlar, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

Yeniden Üretilebilirlik Neden Önemlidir?

Yeniden üretemediğiniz bir deney bilimsel değildir. Aynı kodu iki kez çalıştırmak farklı sonuçlar veriyorsa karşılaştırmalara güvenemez veya gerilemelerde hata ayıklayamazsınız.

Üç temel unsur, yapay zekâ çalışmalarını yeniden üretilebilir kılar: sabit random seed değerleri, dışsallaştırılmış yapılandırmalar ve sabitlenmiş ortamlar.

Rastgelelik Kaynakları

Rastgelelik birçok yerden ortaya çıkabilir: verilerin karıştırılması, eğitim/test bölmeleri, ağırlıkların başlatılması, bırakma ve veri artırma. Bunların her biri farklı bir rastgele sayı üreteci kullanabilir.

Bir çalıştırmayı yeniden üretmek için kodunuzun dokunduğu her üreteç için seed belirlemelisiniz.

Python ve NumPy için Seed Belirleme

Standart kitaplık ve NumPy üreteçlerini, seçtiğiniz tek bir seed ile sabitleyin (42 yaygın bir kuraldır).

import random
import numpy as np

random.seed(42)
np.random.seed(42)

Çerçevelerde Tohumlama

Makine öğrenimi çerçevelerinin kendi üreteçleri vardır. Onları da tohumlayın ve tohumu random_state kabul eden işlevlere geçirin.

import numpy as np
from sklearn.model_selection import train_test_split

X_train, X_test = train_test_split(X, test_size=0.2, random_state=42)
# torch.manual_seed(42) / tf.random.set_seed(42) for deep learning

Bir set_seed Yardımcı İşlevi

Tüm tohumlama işlemlerini tek bir işlevde toplayın ve her betiğin başında çağırın; böylece hiçbir üreteci unutmazsınız.

import random, os
import numpy as np

def set_seed(seed=42):
    random.seed(seed)
    np.random.seed(seed)
    os.environ["PYTHONHASHSEED"] = str(seed)

set_seed(42)

Sabit Kodlanmış Hiperparametreler Bir Tuzaktır

Kodunuza 0.01, 200 ve 0.2 değerlerini serpiştirmek, çalıştırmaları izlemeyi ve değiştirmeyi zorlaştırır. En yüksek puanı alan çalıştırmadaki öğrenme oranı 0.01 miydi, yoksa 0.001 mi?

Çözüm: tüm hiperparametreleri kod yerine bir yapılandırma dosyasına koymaktır.

YAML Yapılandırma Dosyaları

YAML, yapılandırmalar için ideal, insanların okuyabileceği bir biçimdir. Tek bir dosya, bir çalıştırma için gereken tüm ayarları içerir.

# config.yaml
seed: 42
model:
  name: random_forest
  n_estimators: 200
  max_depth: 8
training:
  test_size: 0.2
data:
  path: data/processed/train.csv

PyYAML ile YAML Okuma

Yapılandırmayı betiğinizin başında PyYAML ile yükleyin. Artık kodunuz, değerleri sabit kodlamak yerine cfg içinden okur.

import yaml

with open("config.yaml") as f:
    cfg = yaml.safe_load(f)

print(cfg["model"]["n_estimators"])   # 200
set_seed(cfg["seed"])

Yapılandırmayı Koda Geçirme

İşlevler, yapılandırmayı veya değerlerini bağımsız değişken olarak alır. Yeni bir deneme çalıştırmak için Python kodunu değil, YAML dosyasını değiştirirsiniz.

from sklearn.ensemble import RandomForestClassifier

m = cfg["model"]
model = RandomForestClassifier(
    n_estimators=m["n_estimators"],
    max_depth=m["max_depth"],
    random_state=cfg["seed"],
)

Ortamı Sabitleme

Farklı kitaplık sürümleri farklı sonuçlar üretir. Başkalarının ve gelecekteki sizin aynı teknoloji yığınını yüklemesi için sürümleri kesin olarak sabitleyin.

# requirements.txt with pinned versions
pandas==2.2.0
scikit-learn==1.4.0
numpy==1.26.4

# generate it with:
# pip freeze > requirements.txt

Sanal Ortamlar

Her projeyi, sabitlenmiş sürümlerinin diğer projelerle çakışmaması için yalıtın. Bir sanal ortam oluşturup etkinleştirin, ardından sabitlenmiş dosyadan yükleme yapın.

python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Hızlı Kontrol: Hiperparametreler

On farklı hiperparametre bileşimini denemek ve her çalıştırmayı yeniden üretilebilir ve izlenebilir tutmak istiyorsunuz.

Özet: Yeniden Üretilebilirlik

Yeniden üretilebilir yapay zekânın üç temel unsurunu öğrendiniz:

  • Tohumlar: random.seed(42), np.random.seed(42), çerçeve tohumları ve random_state
  • Yapılandırmalar: config.yaml içindeki tüm hiperparametreler; yapılandırma PyYAML ile yüklenir
  • Ortamlar: sanal ortam içindeki sabitlenmiş requirements.txt

Kodu değil, yapılandırmayı değiştirin. Sırada Jupyter not defteri için en iyi uygulamalar var.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Python öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
53
Dersler
225

Sıkça Sorulan Sorular

“Yeniden Üretilebilirlik: Tohumlar, Yapılandırmalar ve Ortamlar” dersi ücretsiz mi?

Evet — “Yeniden Üretilebilirlik: Tohumlar, Yapılandırmalar ve Ortamlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“Yeniden Üretilebilirlik: Tohumlar, Yapılandırmalar ve Ortamlar” dersinde ne öğreneceğim?

random.seed(), np.random.seed(), YAML yapılandırma dosyaları ve pip freeze ile ortam sürümlerini sabitleme. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Yeniden Üretilebilirlik: Tohumlar, Yapılandırmalar ve Ortamlar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Profesyonel Yapay Zeka Projeleri için Dizin Yapısı
  2. Yapay Zeka Projeleri için Git
  3. Yeniden Üretilebilirlik: Tohumlar, Yapılandırmalar ve Ortamlar
  4. Jupyter Not Defterleri İçin En İyi Uygulamalar
← Learn AI with Python Sayfasına Dön