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.
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.
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.
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.
Relacionado
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://www.analyticsvidhya.com/blog/2023/03/pytorch-tensors-and-its-operations/