Posso ter passado por essa explicação anteriormente, mas agora que surgiu a dúvida. Qual o motivo para que ao fazer uso de um data set, eu necessite transformar a imagem em um tensor ???
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Posso ter passado por essa explicação anteriormente, mas agora que surgiu a dúvida. Qual o motivo para que ao fazer uso de um data set, eu necessite transformar a imagem em um tensor ???
Oii Aline, tudo certo por ai?
A transformação de imagem é um processo feito para alterar os valores originais dos pixels da imagem para um conjunto de novos valores. Um tipo de transformação que fazemos nas imagens é transformar uma imagem em um tensor.
Como vimos no curso, um tensor é uma matriz n-dimensional, e é interessante usarmos ele durante os processos por conta de que podem ser utilizados tanto na CPU quanto em GPU, e isso acelera o processo computacional relacionado à deep learning.
Quando uma imagem é transformada em um tensor no Pytorch, os valores de pixel são redimensionados entre 0,0 e 1,0. Cada pixel individual da imagem é dividido em seus 3 canais de cores e montado junto com a posição do pixel em um tensor. Para garantir que todos os tensores tenham sempre o mesmo tamanho (mesmo número de entradas para a rede neural), todas as imagens devem primeiro ser dimensionadas para um tamanho uniforme.
No PyTorch, essa transformação pode ser feita usando torchvision.transforms.ToTensor(). Ele converte a imagem PIL (Image-handling packages) com um intervalo de pixels de [0, 255] em um PyTorch FloatTensor (CHW) com um intervalo [0,0, 1,0].
Depois de fazer essa conversão de imagem para tensor, podemos fazer, por exemplo, a normalização da imagem, que é interessante quando trabalhamos com deep learning. A normalização faz com que os valores de média e desvio padrão da imagem se tornem 0,0 ou 1,0, respectivamente. É importante fazer esse processo porque obtendo os dados dentro de um intervalo, a assimetria deles reduz, o que faz com que o modelo aprenda mais rápido e melhor.
Então, concluindo, esses passos são feitos principalmente para que o desempenho do modelo seja melhor e o custo computacional seja menor. Deixo aqui também uma indicação de artigo sobre Primeiros passos com Pytorch.
Espero ter ajudado, mas qualquer outra dúvida, pode me chamar, ok?
Bons estudos ^^