1
resposta

[Projeto] Sessão 02: Tensores

tns1 = 7 x 7 x 3

Se multiplicarmos as dimensões:

7 * 7 * 3 = 147

Ou seja, o tns1 possui 147 elementos, assim como o tns2, que tem dimensão:

tns2 = 147 x 1

Com base na conclusão que cheguei acima descrevo o seguinte código à baixo:

import torch

tns1 = torch.randn(7, 7, 3)
tns2 = torch.randn(147, 1)

tns1 = tns1.reshape(147, 1)

resultado = tns1 + tns2

print(tns1.size())
print(tns2.size())
print(resultado.size())

a saída fica assim:

torch.Size([147, 1])
torch.Size([147, 1])
torch.Size([147, 1])
1 resposta

Olá, Leandro! Como vai?

Sua análise ficou muito boa: ao calcular 7 * 7 * 3 = 147, você confirmou que o tensor tns1 possui a mesma quantidade de elementos que o tns2. Por isso, o uso de reshape(147, 1) faz sentido neste caso, já que a reorganização mantém os 147 elementos e altera apenas o formato do tensor para permitir a soma.

Uma dica interessante é sempre conferir a quantidade total de elementos antes de usar reshape, porque o PyTorch só permite essa transformação quando o novo formato comporta exatamente a mesma quantidade de dados.

Você já fez essa validação corretamente com o cálculo das dimensões e com o print(size()), o que é uma ótima prática para evitar erros em operações com tensores.

Em quais outros formatos você acha que esse mesmo tns1 poderia ser reorganizado mantendo os 147 elementos?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!