Regras de Broadcasting que Economizam Loops
Combine tensores de formas diferentes elemento a elemento
Regras de Broadcasting que Economizam Loops é uma aula grátis de Deep Learning Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Deep Learning Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Deep Learning Academy inclui 4 aulas no total.
Combinar sem formas correspondentes
O Broadcasting permite que PyTorch estenda um tensor menor para ajustá-lo a um maior, evitando que o senhor escreva laços para repetir valores.
Adicionar um escalar a tudo
O broadcasting mais simples: adicionar um número a um tensor inteiro. PyTorch aplica esse número a cada elemento de uma só vez. ✨
x = torch.tensor([1, 2, 3])
print(x + 10) # tensor([11, 12, 13])Comparar formas da direita para a esquerda
O broadcasting alinha as dimensões começando pela direita. Em seguida, verifica cada par para decidir se eles podem ser combinados.
Regra um: tamanhos iguais correspondem
Duas dimensões são compatíveis quando são iguais. Tamanhos correspondentes se alinham um a um, sem necessidade de extensão.
Regra dois: um tamanho 1 se estende
Se uma dimensão for 1, ela se expande para corresponder à outra. Esse único valor é reutilizado em todo o eixo.
a = torch.tensor([[1], [2], [3]])
b = torch.tensor([10, 20])
print((a + b).shape) # torch.Size([3, 2])Dimensões ausentes contam como 1
Quando um tensor tem menos dimensões, PyTorch acrescenta ones no início. Assim, um vetor pode ser combinado por broadcasting com uma matriz.
m = torch.ones(2, 3)
v = torch.tensor([1, 2, 3])
print((m + v).shape) # torch.Size([2, 3])Adicionar um viés a todas as linhas
Um uso clássico: adicionar um viés de linha a cada amostra de um lote. Um vetor pequeno alcança todas as linhas sem custo adicional.
batch = torch.zeros(4, 3)
bias = torch.tensor([1.0, 2.0, 3.0])
print((batch + bias).shape) # torch.Size([4, 3])Normalizar uma coluna de uma só vez
Subtraia a média de cada coluna usando broadcasting e centralize seus dados em uma linha, sem precisar de um laço sobre as linhas.
x = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
m = x.mean(dim=0)
print(x - m)Quando as formas não podem usar broadcasting
Se duas dimensões forem diferentes e nenhuma delas for 1, o broadcasting falha e PyTorch gera um erro claro de tamanho.
Adicionar dimensões para orientar o broadcasting
Use unsqueeze para inserir um eixo de tamanho 1 exatamente onde precisar. Isso orienta o broadcasting para a forma desejada.
col = torch.tensor([1, 2, 3]).unsqueeze(1)
print(col.shape) # torch.Size([3, 1])Por que o broadcasting é rápido
O broadcasting nunca copia os valores estendidos: ele os reutiliza. Por isso, os cálculos vetorizados são muito mais rápidos do que os laços de Python. 🚀
Verificação rápida
O senhor consegue prever se duas formas poderão usar broadcasting?
Recapitulação: regras do broadcasting
O senhor aprendeu as duas regras: as dimensões correspondem quando são iguais ou quando uma delas é 1. Domine isso e os laços se transformarão em cálculos limpos e rápidos com tensores. 💪
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Regras de Broadcasting que Economizam Loops” é grátis?
Sim — o texto completo de “Regras de Broadcasting que Economizam Loops” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Deep Learning Academy, atualize para CoddyKit PRO. O curso de Deep Learning Academy inclui 4 aulas no total.
O que vou aprender em “Regras de Broadcasting que Economizam Loops”?
Combine tensores de formas diferentes elemento a elemento Você pratica Deep Learning Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Deep Learning Academy?
Nenhuma experiência prévia é necessária. Deep Learning Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Regras de Broadcasting que Economizam Loops”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Deep Learning Academy?
Sim. Cada aula de Deep Learning Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Formas, Tipos de Dados e Indexação
- Redimensionar, View, Squeeze e Unsqueeze
- Regras de Broadcasting que Economizam Loops
- Tensores Conversam com NumPy