Deep Learning Academy · Aula

Regras de Broadcasting que Economizam Loops

Combine tensores de formas diferentes elemento a elemento

Aula 3 de 413 etapas

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. 💪

Grátis para começar

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

  1. Formas, Tipos de Dados e Indexação
  2. Redimensionar, View, Squeeze e Unsqueeze
  3. Regras de Broadcasting que Economizam Loops
  4. Tensores Conversam com NumPy
← Voltar para Deep Learning Academy