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 tochaimportar 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.