Inizializzare la casualità per esecuzioni ripetibili
Controlli i seed casuali in NumPy, PyTorch e Python.
Inizializzare la casualità per esecuzioni ripetibili è una lezione MLOps Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento MLOps Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso MLOps Academy include 4 lezioni in totale.
Perché le esecuzioni differiscono
Il machine learning usa la casualità per mescolare i dati, creare suddivisioni e inizializzare i pesi. Eseguendo il programma due volte ottenete due modelli diversi. Il seeding rende la casualità ripetibile. 🎲
Cos'è un seed
Un seed è un numero iniziale per il generatore casuale. Inserendo lo stesso seed si ottiene la stessa sequenza di numeri casuali.
Impostare il seed in Python puro
Il modulo random integrato di Python richiede random.seed, così ogni mescolamento eseguito in Python puro diventa riproducibile.
import random
random.seed(42)Impostare il seed in NumPy
La maggior parte delle operazioni sui dati passa da NumPy, quindi impostate np.random.seed per rendere deterministici il mescolamento degli array e il campionamento.
import numpy as np
np.random.seed(42)Impostare il seed in PyTorch
L'inizializzazione del deep learning e il dropout usano il generatore di PyTorch, quindi chiamate torch.manual_seed prima di creare il modello.
import torch
torch.manual_seed(42)Non dimenticare la GPU
CUDA ha un proprio stato casuale, quindi dovete inizializzarlo separatamente. cuda.manual_seed_all copre contemporaneamente tutti i dispositivi GPU.
torch.cuda.manual_seed_all(42)Impostare il seed nelle suddivisioni di scikit-learn
Passate random_state a funzioni come train_test_split, così le stesse righe finiranno nella stessa suddivisione a ogni esecuzione.
train_test_split(X, y, random_state=42)Un unico helper per gestirli tutti
Riunite tutte le chiamate per impostare i seed in un'unica funzione set_seed. Chiamatela all'avvio, così non dimenticherete nulla.
def set_seed(s):
random.seed(s)
np.random.seed(s)
torch.manual_seed(s)Forzare i kernel deterministici
Alcuni kernel GPU restano casuali anche dopo l'impostazione del seed. Attivate la modalità deterministic in PyTorch per forzare calcoli ripetibili.
torch.use_deterministic_algorithms(True)Registrare il seed
Registrate sempre il valore del seed usato insieme all'esecuzione. Un risultato che non potete riprodurre è un risultato di cui non potete fidarvi.
Riproducibile, non su hardware identico
Anche con i seed, i risultati possono cambiare su hardware diverso o con versioni diverse delle librerie. Fissate anche questi elementi per ottenere una vera ripetibilità.
Verifica rapida
Avete impostato il seed di Python e NumPy, ma il vostro modello PyTorch continua a variare. Che cosa avete dimenticato?
Riepilogo
Avete imparato a inizializzare ogni fonte di casualità: Python, NumPy, PyTorch, CUDA e sklearn, e poi a registrare il seed per ottenere esecuzioni ripetibili. 🔁
Domande Frequenti
La lezione «Inizializzare la casualità per esecuzioni ripetibili» è gratuita?
Sì — il testo completo di «Inizializzare la casualità per esecuzioni ripetibili» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso MLOps Academy, passa a CoddyKit PRO. Il corso MLOps Academy include 4 lezioni in totale.
Cosa imparerò in «Inizializzare la casualità per esecuzioni ripetibili»?
Controlli i seed casuali in NumPy, PyTorch e Python. Eserciti MLOps Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare MLOps Academy?
Non è richiesta alcuna esperienza precedente. MLOps Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Inizializzare la casualità per esecuzioni ripetibili»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione MLOps Academy?
Sì. Ogni lezione MLOps Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Bloccare le dipendenze con requirements.txt
- Isolare i progetti con gli ambienti virtuali
- Inizializzare la casualità per esecuzioni ripetibili
- Acquisire la configurazione completa dell'esecuzione