As entradas de dados individuais são armazenadas na forma de “ Tensores ”No PyTorch e“ gradientes ”De tensores são calculados usando propagação para trás dentro do loop de treinamento de um modelo de aprendizado profundo. O termo ' sem escala ”Significa que os dados são brutos e não há pré-processamento ou otimização envolvido. O gradiente não escalonado de um Tensor fornece o verdadeiro valor da mudança sobre a função de perda especificada.
Neste blog, discutiremos como calcular o gradiente sem escala de um Tensor no PyTorch.
O que é um gradiente não dimensionado de um tensor no PyTorch?
Tensores são arrays multidimensionais que contêm dados e podem ser executados em GPUs no PyTorch. Os tensores que contêm dados brutos do conjunto de dados sem qualquer pré-processamento, transformação ou otimização são chamados de tensores sem escala. No entanto, um “ Gradiente sem escala ”É diferente de um tensor sem escala e deve-se tomar cuidado para não confundir os dois. Um gradiente não escalonado de um tensor é calculado em relação à função de perda selecionada e não possui nenhuma otimização ou escala adicional.
Como calcular o gradiente não dimensionado de um tensor no PyTorch?
O gradiente não escalonado de um Tensor é o valor real da taxa de mudança dos dados de entrada relativos à função de perda selecionada. Os dados brutos do gradiente são importantes para entender o comportamento do modelo e sua progressão durante o ciclo de treinamento.
Siga as etapas abaixo para aprender como calcular o gradiente não dimensionado de um tensor no PyTorch:
Etapa 1: comece o projeto configurando o IDE
O IDE Google Colaboratory é uma das melhores opções para o desenvolvimento de projetos PyTorch porque fornece acesso gratuito a GPUs para processamento mais rápido. Vá para o Colab local na rede Internet e clique no botão “ Novo caderno ”Opção para começar a trabalhar:
Etapa 2: importar a biblioteca Essential Torch
Todas as funcionalidades da estrutura PyTorch estão contidas no “ Tocha ' biblioteca. Cada projeto PyTorch começa instalando e importando esta biblioteca:
!pip instalar tochaimportar tocha
O código acima funciona da seguinte maneira:
- “! pip ”é um pacote de instalação para Python usado para instalar bibliotecas em projetos.
- O ' importar ”O comando é usado para chamar as bibliotecas instaladas no projeto.
- Este projeto só precisa da funcionalidade do “ tocha ' biblioteca:
Etapa 3: definir um tensor PyTorch com gradiente
Use o ' tocha.tensor ()”método para definir um tensor com gradiente “ requer_grad = Verdadeiro ”método:
A = tocha.tensor([5.0], requer_grad=True)Etapa 4: definir uma função de perda simples
Uma função de perda é definida usando uma equação aritmética simples, conforme mostrado:
função_perda = A*5
Etapa 5: Calcule o gradiente e imprima na saída
Use o ' para trás ()”método para calcular o gradiente não dimensionado conforme mostrado:
função_perda.backward()sem escala_grad = A.grad
print('Gradiente não dimensionado do tensor PyTorch: ', unscaled_grad)
O código acima funciona da seguinte maneira:
- Use o ' para trás ()”método para calcular o gradiente não escalonado por meio de propagação para trás.
- Atribuir o “ A.grad ' para o ' não escalado_grad ' variável.
- Por último, use o “ imprimir ()”método para mostrar a saída do gradiente não dimensionado:
Observação : Você pode acessar nosso Colab Notebook neste link .
Dica profissional
O gradiente não escalado de tensores pode mostrar a relação exata dos dados de entrada com a função de perda para uma rede neural dentro da estrutura PyTorch. O gradiente bruto e não editado mostra como ambos os valores estão relacionados sistematicamente.
Sucesso! Acabamos de mostrar como calcular o gradiente sem escala de um tensor no PyTorch.
Conclusão
Calcule o gradiente não escalado de um tensor no PyTorch definindo primeiro o tensor e, em seguida, usando o método backward() para encontrar o gradiente. Isso mostra como o modelo de aprendizagem profunda relaciona os dados de entrada com a função de perda definida. Neste blog, fornecemos um tutorial passo a passo sobre como calcular o gradiente não dimensionado de um tensor no PyTorch.