O que é o PyTorch ?
O PyTorch é uma biblioteca de aprendizado de máquina de código aberto baseada na biblioteca Torch, usada para aplicativos como visão computacional e processamento de linguagem natural. É desenvolvido principalmente pelo laboratório de Pesquisa AI do Facebook. É um software gratuito e de código aberto lançado sob a licença BSD modificada. Embora a interface Python seja mais polida e o foco principal do desenvolvimento, o PyTorch também possui uma interface C ++.
O PyTorch define uma classe chamada Tensor (torch.Tensor) para armazenar e operar em matrizes retangulares multidimensionais homogêneas de números. Os tensores PyTorch são semelhantes aos NumPy Arrays, mas também podem ser operados em uma GPU Nvidia compatível com CUDA. O PyTorch suporta vários subtipos de tensores.
Por que PyTorch ?
Como dissemos, o aprendizado profundo permite que você execute uma ampla gama de tarefas complicadas – como executar tradução automática, jogar jogos de estratégia e identificar objetos em cenários desorganizados – expondo seu modelo a exemplos ilustrativos. Para fazer isso no procedimento, você precisa de ferramentas flexíveis para que possam ser adaptadas ao seu problema específico e eficaz, para permitir que o treinamento ocorra com grandes quantidades de dados em tempos razoáveis. Você também precisa da rede treinada para executar corretamente na presença de incerteza nas entradas.
O PyTorch é fácil de recomendar devido à sua simplicidade.
Para usuários familiarizados com matrizes NumPy, a classe Tensor do PyTorch será imediatamente familiar. O PyTorch parece o NumPy, mas com a aceleração da CPU e o cálculo automático de gradientes, o que o torna adequado para o cálculo automático de dados de retrocesso a partir de uma expressão avançada.
A API do Tensor é tal que os recursos adicionais da classe relevantes para o aprendizado profundo são discretos; o usuário pode fingir que esses recursos não existem até que seja necessário.
A revolução do aprendizado profundo
Até o final de 2000, a classe mais ampla de sistemas que se enquadrava na categoria “aprendizado de máquina” dependia muito da engenharia de recursos. Recursos são transformações de dados de entrada, resultando em recursos numéricos que facilitam um algoritmo downstream, como um classificador, para produzir resultados corretos em novos dados. A engenharia de recursos visa obter os dados originais e apresentar representações dos mesmos dados que podem ser alimentados por um algoritmo para resolver um problema. Para distinguir zeros em imagens de dígitos manuscritos, por exemplo, você criaria um conjunto de filtros para estimar a direção das bordas sobre a imagem e depois treinaria um classificador para prever o dígito correto, dada a distribuição das direções das bordas . Outro recurso útil poderia ser o número de orifícios fechados em dois zero, oito ou particularmente em loop.
A aprendizagem profunda, por outro lado, lida com a localização automática de tais representações, a partir de dados brutos, para executar uma tarefa com êxito. No exemplo um-contra-zeros, os filtros seriam refinados durante o treinamento, observando iterativamente pares de exemplos e rótulos de destino.A capacidade de uma rede neural de ingerir dados e extrair representações úteis com base em exemplos, no entanto, é o que torna a aprendizagem profunda tão poderosa. O foco dos profissionais de aprendizagem profunda não é tanto o artesanato manual dessas representações, mas a operação em uma entidade matemática, para que ela descubra representações dos dados de treinamento autonomamente.
Sem comentários! Seja o primeiro.