0Pricing
MLOps Academy · Aula

Defina a aleatoriedade para execuções repetíveis

Controle as sementes aleatórias no NumPy, no PyTorch e no Python.

Defina a aleatoriedade para execuções repetíveis é uma aula grátis de MLOps Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de MLOps Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de MLOps Academy inclui 4 aulas no total.

Por que as execuções diferem

O ML usa aleatoriedade para embaralhamento, divisões e inicialização de pesos. Execute duas vezes e obterá dois modelos diferentes. Definir uma semente torna a aleatoriedade repetível. 🎲

O que é uma semente

Uma seed é um número inicial para o gerador aleatório. A mesma seed como entrada produz a mesma sequência de números aleatórios como saída.

Definir a semente do Python puro

O próprio módulo random do Python precisa de random.seed para que qualquer embaralhamento em Python puro seja reproduzível.

import random
random.seed(42)

Definir a semente do NumPy

A maior parte do trabalho com dados passa pelo NumPy; portanto, defina np.random.seed para fixar os embaralhamentos e as amostragens de matrizes.

import numpy as np
np.random.seed(42)

Definir a semente do PyTorch

A inicialização do aprendizado profundo e o dropout usam o gerador do PyTorch; portanto, chame torch.manual_seed antes de criar seu modelo.

import torch
torch.manual_seed(42)

Não se esquecer da GPU

CUDA tem seu próprio estado aleatório, portanto defina a semente separadamente. cuda.manual_seed_all abrange todos os dispositivos GPU de uma só vez.

torch.cuda.manual_seed_all(42)

Definir a semente das divisões do scikit-learn

Passe random_state para funções como train_test_split para que as mesmas linhas caiam na mesma divisão em todas as execuções.

train_test_split(X, y, random_state=42)

Uma função auxiliar para todas elas

Reúna todas as chamadas de definição de seed em uma única função set_seed. Chame-a uma vez na inicialização para não esquecer nada.

def set_seed(s):
    random.seed(s)
    np.random.seed(s)
    torch.manual_seed(s)

Forçar kernels determinísticos

Alguns kernels de GPU continuam aleatórios mesmo depois da definição da seed. Ative o modo deterministic no PyTorch para forçar cálculos repetíveis.

torch.use_deterministic_algorithms(True)

Registrar a seed

Sempre registre o valor da seed usado junto com a execução. Um resultado que não pode ser reproduzido é um resultado em que você não pode confiar.

Reproduzível, não com hardware idêntico

Mesmo com seeds, os resultados podem mudar entre hardwares diferentes ou versões de bibliotecas. Fixe esses elementos também para obter uma repetição realmente confiável.

Verificação rápida

Você definiu a seed do Python e do NumPy, mas seu modelo PyTorch ainda varia. O que você esqueceu?

Recapitulação

Você aprendeu a definir a seed de todas as fontes de aleatoriedade: Python, NumPy, PyTorch, CUDA e sklearn; depois, aprendeu a registrar a seed para obter execuções repetíveis. 🔁

Perguntas Frequentes

A aula “Defina a aleatoriedade para execuções repetíveis” é grátis?

Sim — o texto completo de “Defina a aleatoriedade para execuções repetíveis” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de MLOps Academy, atualize para CoddyKit PRO. O curso de MLOps Academy inclui 4 aulas no total.

O que vou aprender em “Defina a aleatoriedade para execuções repetíveis”?

Controle as sementes aleatórias no NumPy, no PyTorch e no Python. Você pratica MLOps Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar MLOps Academy?

Nenhuma experiência prévia é necessária. MLOps Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Defina a aleatoriedade para execuções repetíveis”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de MLOps Academy?

Sim. Cada aula de MLOps Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fixe as dependências com requirements.txt
  2. Isole projetos com ambientes virtuais
  3. Defina a aleatoriedade para execuções repetíveis
  4. Capture toda a configuração da execução
← Voltar para MLOps Academy