Como usar “torch.no_grad” no PyTorch?

Como Usar Torch No Grad No Pytorch



O cálculo de gradientes para as camadas de uma rede neural é um recurso integrado da estrutura PyTorch. Os usuários podem avaliar a conexão entre camadas adjacentes quando os gradientes são calculados na passagem para trás. No entanto, isso prejudica o hardware devido aos grandes volumes de dados que precisam ser processados ​​e, neste caso, o “ tocha.no_grad ”O método pode ser usado para interromper o cálculo do gradiente sempre que necessário.

Neste blog, discutiremos como usar o “ tocha.no_grad ”Método em PyTorch.

Qual é o método “torch.no_grad” no PyTorch?

O ' tocha.no_grad ”O método é usado para o gerenciamento de contexto dentro da estrutura de desenvolvimento PyTorch. Seu objetivo é interromper o cálculo de gradientes para a conexão entre as camadas subsequentes do modelo de aprendizagem profunda. A utilidade deste método é que quando os gradientes não são necessários em um determinado modelo, eles podem ser desabilitados para alocar mais recursos de hardware para o processamento do loop de treinamento do modelo.







Como usar o método “torch.no_grad” no PyTorch?

Os gradientes são calculados na passagem para trás no PyTorch. Por padrão, o PyTorch possui diferenciação automática ativada para todos os modelos de aprendizado de máquina. A desativação da computação gradiente é essencial para desenvolvedores que não possuem recursos de processamento de hardware suficientes.



Siga as etapas abaixo para aprender como usar o “ tocha.no_grad ”Método para desativar o cálculo de gradientes no PyTorch:







Etapa 1: iniciar o IDE Colab

O Google Colaboratory é uma excelente escolha de plataforma para o desenvolvimento de projetos utilizando o framework PyTorch devido às suas GPUs dedicadas. Vá para o Colab local na rede Internet e abra um “ Novo caderno ' como mostrado:



Etapa 2: instalar e importar a biblioteca Torch

Toda a funcionalidade do PyTorch é encapsulada pelo “ tocha ' biblioteca. Sua instalação e importação são essenciais antes de iniciar os trabalhos. O ' !pip ”O pacote de instalação do Python é usado para instalar bibliotecas e é importado para o projeto usando o“ importar ”comando:

!pip instalar tocha
importar tocha

Etapa 3: definir um tensor PyTorch com um gradiente

Adicione um tensor PyTorch ao projeto usando o “ tocha.tensor() ”Método. Em seguida, forneça um gradiente válido usando o “ requer_grad = Verdadeiro ”Método conforme mostrado no código abaixo:

A = tocha.tensor([5.0], requer_grad=True)

Etapa 4: use o método “torch.no_grad” para remover o gradiente

A seguir, remova o gradiente do tensor definido anteriormente usando o “ tocha.no_grad ”método:

com torch.no_grad():
B = A**2 + 16

O código acima funciona da seguinte maneira:

  • O ' não_grad() ”O método é usado dentro de um“ com ' laço.
  • Cada tensor contido no loop tem seu gradiente removido.
  • Por último, defina um cálculo aritmético de amostra usando o tensor definido anteriormente e atribua-o ao “ B ”variável conforme mostrado acima:

Etapa 5: verifique a remoção do gradiente

A última etapa é verificar o que acabou de ser feito. O gradiente do tensor “ A ” foi removido e deve ser verificado na saída usando o “ imprimir() ”método:

print('Cálculo de gradiente com torch.no_grad: ', A.grad)
print('\nTensor original: ', A)
print('\nExemplo de cálculo aritmético: ', B)

O código acima funciona da seguinte maneira:

  • O ' graduado ”método nos dá o gradiente do tensor“ A ”. Não mostra nenhum na saída abaixo porque o gradiente foi removido usando o “ tocha.no_grad ”Método.
  • O tensor original ainda mostra que tem seu gradiente visto do “ requer_grad = Verdadeiro ” declaração na saída.
  • Por fim, o cálculo aritmético amostral mostra o resultado da equação definida anteriormente:

Observação : Você pode acessar nosso Colab Notebook neste link .

Dica profissional

O ' tocha.no_grad ”O método é ideal onde os gradientes não são necessários ou quando há necessidade de reduzir a carga de processamento no hardware. Outro uso desse método é durante a inferência porque o modelo só é usado para fazer previsões com base em novos dados. Como não há treinamento envolvido, faz todo o sentido simplesmente desabilitar o cálculo de gradientes.

Sucesso! Mostramos como usar o método “torch.no_grad” para desativar gradientes no PyTorch.

Conclusão

Use o ' tocha.no_grad ”Método no PyTorch definindo-o dentro de um“ com ”Loop e todos os tensores contidos nele terão seu gradiente removido. Isso trará melhorias nas velocidades de processamento e evitará o acúmulo de gradientes no ciclo de treinamento. Neste blog, mostramos como isso “ tocha.no_grad ”O método pode ser usado para desativar os gradientes dos tensores selecionados no PyTorch.