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 ???
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 ^^