Deep Learning Academy · Aula

torch.no_grad() para Inferência

Ignore o rastreamento do grafo para economizar memória

Aula 4 de 413 etapas

torch.no_grad() para Inferência é uma aula grátis de Deep Learning Academy no CoddyKit. Esta é a aula 4 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 Deep Learning Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Deep Learning Academy inclui 4 aulas no total.

Nem toda passagem precisa de gradientes

Você só precisa de gradientes durante o treinamento. Quando deseja apenas fazer previsões, monitorar o grafo é trabalho desperdiçado, então o PyTorch permite desativá-lo. 🛑

Conheça torch.no_grad

Envolva o código em um bloco torch.no_grad() e a diferenciação automática deixará de registrar o que estiver dentro dele. Nenhum grafo será construído e nenhum gradiente será armazenado.

with torch.no_grad():
    preds = model(x)

Por que ignorar o grafo

Construir o grafo consome memória para lembrar cada etapa de uma passagem para trás que nunca acontecerá. Durante a inferência, essa sobrecarga é puro desperdício.

Mais rápido e leve

Dentro de no_grad, sua passagem direta usa menos memória e é executada um pouco mais rapidamente. Em modelos grandes, isso permite acomodar lotes maiores quando você está apenas fazendo previsões.

As saídas são desvinculadas

Os tensores criados dentro do bloco têm requires_grad como false. São resultados simples que você pode imprimir, salvar ou transformar em NumPy sem problemas.

Use-o para avaliação

Os laços de validação e teste devem sempre ser executados sob no_grad. Você está avaliando o modelo, não treinando-o, portanto não há motivo para monitorar gradientes.

with torch.no_grad():
    for x, y in val_loader:
        out = model(x)

Combine-o com o modo eval

Para fazer inferência, defina model.eval() e envolva as chamadas em no_grad. eval corrige o comportamento de camadas como dropout; no_grad interrompe o grafo. Eles resolvem problemas diferentes.

É um gerenciador de contexto

no_grad só afeta o código dentro do bloco with. Ao sair dele, a diferenciação automática reativa o monitoramento automaticamente para o próximo passo de treinamento.

A forma de decorador

Você também pode marcar uma função inteira com @torch.no_grad(). Assim, toda operação com tensores dentro dessa função será executada sem construir um grafo.

@torch.no_grad()
def predict(x):
    return model(x)

Desvincule um único tensor

Precisa liberar apenas um tensor do grafo, em vez de um bloco inteiro? Chame .detach() nele para obter uma cópia sem histórico de gradientes.

frozen = output.detach()

Um hábito seguro e comum

Use no_grad sempre que não estiver aprendendo: durante a inferência, ao calcular métricas ou ao salvar saídas. É uma pequena alteração que economiza silenciosamente memória e tempo.

Verificação rápida

Confirme quando usar no_grad.

Recapitulação

Envolva a inferência em torch.no_grad() para ignorar a construção do grafo, economizando memória e tempo. Combine-o com model.eval() sempre que fizer previsões em vez de treinar. 🚀

Grátis para começar

Aprenda Python com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “torch.no_grad() para Inferência” é grátis?

Sim — o texto completo de “torch.no_grad() para Inferência” é 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 Deep Learning Academy, atualize para CoddyKit PRO. O curso de Deep Learning Academy inclui 4 aulas no total.

O que vou aprender em “torch.no_grad() para Inferência”?

Ignore o rastreamento do grafo para economizar memória Você pratica Deep Learning 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 Deep Learning Academy?

Nenhuma experiência prévia é necessária. Deep Learning 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 4 de 4.

Quanto tempo leva a aula “torch.no_grad() para Inferência”?

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 Deep Learning Academy?

Sim. Cada aula de Deep Learning 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. requires_grad e o Grafo Computacional
  2. Chame backward() para Obter Gradientes
  3. Lendo e Zerando .grad
  4. torch.no_grad() para Inferência
← Voltar para Deep Learning Academy