Zephyrnet Logo

Tensores Pytorch e suas operações

Data:

Introdução

O avanço do interesse Aprendizagem profunda nos últimos anos e a explosão de ferramentas de Machine Learning como TensorFlow, PyTorch, etc., também serão citadas, o que proporcionará facilidade de uso e fácil depuração de códigos.

Muitas estruturas populares, como MxNet, Tensorflow, Jax, PaddlePaddle, Caffe 2, Mindspore e Theano, ganharão popularidade porque construirão um gráfico de fluxo de dados estático que representa a computação e que pode ser aplicado a lotes de dados. Embora eles forneçam visibilidade em toda a computação e teoricamente, eles são aproveitados com desempenho e escalabilidade aprimorados. Isso terá o custo de flexibilidade, facilidade de depuração e facilidade de uso.

Este artigo fornece informações sobre o Pytorch, que é uma estrutura de Machine Learning escrita em Python. Como a maioria das estruturas de Deep Learning se concentra na usabilidade ou na velocidade, Pytorch mostra que esses dois objetivos são compatíveis: ele é projetado para oferecer suporte ao estilo de programação imperativo e Pythonic, que suportará códigos como modelos, o que facilita a depuração e permanecerá eficiente e compatível ferramentas de aceleradores de hardware como GPU (Graphic Processing Unit) e TPU (Tensor Processing Units).

Várias bibliotecas Python são construídas sobre o PyTorch, como a visão da tocha, Timm para visão computacional, texto da tocha e rosto abraçado para texto e áudio da tocha para fala, que são o que dão poder ao PyTorch.

Este artigo foi publicado como parte do Blogatona de Ciência de Dados.

Conteúdo

Por que Pytorch?

  • É a estrutura de aprendizado profundo de pesquisa mais popular.
  • Capaz de acessar muitos modelos de aprendizado profundo pré-construídos (Torch Hub/tocha-vision.models).
  • Pilha inteira: pré-processar dados, modelar dados, implantar modelo em seu aplicativo/nuvem.
  • Originalmente projetado e usado internamente pelo Facebook/Meta (agora de código aberto e usado por empresas como Tesla, Microsoft e Open AI).
  • O PyTorch minimiza a sobrecarga cognitiva enquanto se concentra na flexibilidade e na velocidade.
  • Desde o lançamento do PyTorch no início de 2017, ele ganhará popularidade.

Tendências crescentes da Pytorch desde o seu lançamento.

lanterna

tensor

Tensor é um bloco de construção fundamental do Pytorch e é basicamente o mesmo que um Matriz Numpy. É usado principalmente para converter imagens, áudio em uma forma matemática usada para processamento, pois os computadores não entendem imagens, mas números padrão. Portanto, é importante converter imagens em formas numéricas.

Um dos recursos importantes oferecidos pelos tensores é que eles podem armazenar o rastreamento de todas as operações realizadas neles, o que ajuda a calcular a saída otimizada; isso pode ser feito usando a funcionalidade Autograd de um tensor.

Em termos simplistas, scaler – vetor – matrizes – tensor como fluxo

1. Scaler é um vetor 0-dimensional.

2. O vetor é um vetor unidimensional.

3. As matrizes são vetores bidimensionais.

4. Tensores são tensores N-dimensionais generalizados.

tensores Pytorch

Casos de uso de tensores

Pytorch é um Google Collab integrado, agora veremos como usar seus códigos básicos para trabalhar nos Tensores Pytorch.

1. Importando o Pytorch e obtendo sua versão.

 import torch print(torch.__version__) # Output 1.13.1+cu116

2. Criando um scaler no Pytorch.

scaler = torch.tensor(7)
scaler
# Output
tensor(7)

3. Criando um tensor em Pytorch.

vector = torch.tensor([7,7])
vector
# output
tensor([7, 7])

4. Para obter as dimensões no Torch, podemos usar:

vector.ndim
# output
1

5. Para obter a forma de um vetor no Torch.

vector.shape
# Output
torch.Size([2])

6. Para obter a matriz em Pytorch.

Matrix = torch.tensor([[1,7], [2,7]])
# output
tensor([[1, 7], [2, 7]])

7. Para criar números aleatórios em Pytorch.

random = torch.rand(7)
# output
tensor([0.0324, 0.9962, 0.0709, 0.7007, 0.6523, 0.0256, 0.4912])

8. Implemente funções embutidas como multiplicação, adição e subtração no tensor.

9. Criando um tensor flutuante.

torch.FloatTensor([1.1, 1.2, 1.3])
# Output
tensor([1.1000, 1.2000, 1.3000])

10. Criando um intervalo de números usando Pytorch.

torch.arange(0,10) # Output
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

Por que os tensores PyTorch são importantes para ML e DL?

Em um problema de aprendizado de máquina supervisionado, temos dados organizados em linhas e colunas com alguns valores de destino (pode ser uma classificação binária como Verdadeiro/Falso, Sim/Não ou pode ser uma entidade numérica). Como sabemos, para processar algoritmos de aprendizado de máquina, os dados devem ser inseridos em formas matemáticas. Uma tabela é naturalmente semelhante a uma matriz 2-D na qual cada linha (instância) ou coluna (Recurso) pode ser ensinada como vetores 1-D, pois o algoritmo de aprendizado de máquina entenderá apenas dígitos numéricos, imagens em preto e branco podem ser tratadas como uma matriz 2-D contendo os números 0 e 1 e alimentada em uma rede neural para classificação ou segmentação de imagens.

Dados de sequência ou dados de série temporal são outro exemplo em que, em dados 2-D, uma dimensão (tempo) é fixa. Por exemplo:

1. Dados de Ecg em máquinas de monitoramento.

2. Um fluxo de dados de rastreamento de preços de mercado de ações.

Estes são exemplos de uso de tensores 2-D em aprendizado de máquina clássico (regressão linear, árvore de decisão, máquina de vetores de suporte, floresta aleatória, regressão logística etc.) e algoritmos de aprendizado profundo.

Uma imagem colorida ou em tons de cinza será considerada um tensor 3D. Um tensor 3-D (ou um tensor de classificação 3) é um cubo ou uma matriz de matrizes como esta.

tensores Pytorch

Em um tensor 3-D, cada Pixel está associado a 'canais de cor' – um vetor de 3 números representando intensidades em Vermelho-Verde-Azul (matriz RGB). Um pixel é comumente colorido pela quantidade ordenada de vermelho, verde e azul dentro dos limites de um byte singular. Essas matrizes de valor de 0 a 255 se parecerão com [255,255,255] para números inteiros. Quando nosso tensor é o tipo de dados int32, este é o método de interpretação usado, e quando nosso tensor é o tipo de dados float32, o valor associado será assumido no intervalo de 0-1. Assim, um inteiro [255,255,255] representará o branco puro, mas em float será representado como [1,1,1] para o branco puro.

Isso implica que um tensor 3D é necessário para armazenar imagens. Cada pixel de três valores deve ser salvo com a largura e altura especificadas. Você precisará decidir qual formato é melhor usar, assim como fez com o quebra-cabeça do jogo da velha. É procedimento padrão no TensorFlow e no TensorFlow.js salvar os valores RGB na dimensão final de um tensor. Além disso, é comum armazenar os valores das dimensões de altura, largura e cor nessa ordem. Embora o endereçamento de linhas e colunas seja a sequência de referência organizacional tradicional para matrizes, isso pode parecer estranho para fotos.

Da mesma forma, o vídeo pode ser pensado como uma sequência de imagens coloridas ou um quadro no tempo, e o vídeo pode ser ensinado como tensores 4-D.

Em outras palavras, tensores multidimensionais podem representar facilmente vários tipos de dados do mundo físico, incluindo dados de sensores e instrumentos, dados comerciais e financeiros e dados de experimentos científicos ou sociais, tornando-os adequados para processamento por algoritmos ML/DL dentro um computador.

Conclusão

Pytorch é um framework de Machine Learning escrito em Python. Várias bibliotecas Python, como o arch-vision e o Timm para visão computacional, são construídas sobre o PyTorch. Ele é capaz de acessar muitos modelos de aprendizado profundo pré-construídos. O Pytorch pode pré-processar dados, modelar dados e implantar modelos em seu aplicativo/nuvem. Tensor é um bloco de construção fundamental do Pytorch e é basicamente o mesmo que um array Numpy. É usado principalmente para converter imagens, áudio em uma forma matemática usada para processamento de computador. Uma imagem colorida ou em tons de cinza será considerada um tensor 3D e um vídeo será considerado um tensor 4D.

A mídia mostrada neste artigo não é propriedade da Analytics Vidhya e é usada a critério do Autor. 

local_img

Inteligência mais recente

local_img