0Pricing
Deep Learning Academy · 课时

帮您省去循环的广播规则

逐元素组合形状不同的张量

帮您省去循环的广播规则 是 CoddyKit 上的免费 Deep Learning Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Deep Learning Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Deep Learning Academy 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Combine Without Matching Shapes

Broadcasting lets PyTorch stretch a smaller tensor to fit a bigger one, so you skip writing loops to repeat values.

Add a Scalar to Everything

The simplest broadcast: add one number to a whole tensor. PyTorch applies it to every element at once. ✨

x = torch.tensor([1, 2, 3])
print(x + 10)  # tensor([11, 12, 13])

Compare Shapes Right to Left

Broadcasting lines up dimensions from the right. It then checks each pair to decide if they can combine.

Rule One: Equal Sizes Match

Two dimensions are compatible when they are equal. Matching sizes line up one to one with no stretching needed.

Rule Two: A Size of 1 Stretches

If one dimension is 1, it expands to match the other. That single value is reused across the whole axis.

a = torch.tensor([[1], [2], [3]])
b = torch.tensor([10, 20])
print((a + b).shape)  # torch.Size([3, 2])

Missing Dimensions Count as 1

When one tensor has fewer dimensions, PyTorch pads it with leading ones. A vector can broadcast against a matrix this way.

m = torch.ones(2, 3)
v = torch.tensor([1, 2, 3])
print((m + v).shape)  # torch.Size([2, 3])

Add a Bias Across Rows

A classic use: add a row bias to every sample in a batch. One small vector reaches every row for free.

batch = torch.zeros(4, 3)
bias = torch.tensor([1.0, 2.0, 3.0])
print((batch + bias).shape)  # torch.Size([4, 3])

Normalize a Column at Once

Subtract a per-column mean with broadcasting and center your data in one line, no loop over rows required.

x = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
m = x.mean(dim=0)
print(x - m)

When Shapes Don't Broadcast

If two dimensions differ and neither is 1, the broadcast fails and PyTorch raises a clear size error.

Add Dimensions to Steer Broadcasting

Use unsqueeze to insert a size-1 axis exactly where you need it. This guides broadcasting toward the shape you want.

col = torch.tensor([1, 2, 3]).unsqueeze(1)
print(col.shape)  # torch.Size([3, 1])

Why Broadcasting Is Fast

Broadcasting never copies the stretched values, it reuses them. That makes vectorized math far faster than Python loops. 🚀

Quick Check

Can you predict whether two shapes will broadcast?

Recap: Broadcasting Rules

You learned the two rules: dimensions match when equal or when one is 1. Master this and loops melt into clean, fast tensor math. 💪

常见问题解答

「帮您省去循环的广播规则」课时是免费的吗?

是的 — 「帮您省去循环的广播规则」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Deep Learning Academy 课程的其余内容,请升级到 CoddyKit PRO。 Deep Learning Academy 课程共包含 4 节课。

「帮您省去循环的广播规则」这节课中我会学到什么?

逐元素组合形状不同的张量 你通过在浏览器中直接运行的动手代码来练习 Deep Learning Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Deep Learning Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Deep Learning Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「帮您省去循环的广播规则」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Deep Learning Academy 课中编写并运行代码吗?

能。每节 Deep Learning Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 形状、数据类型与索引
  2. 重塑、视图、压缩与扩展维度
  3. 帮您省去循环的广播规则
  4. 张量与 NumPy 的互操作
← 返回 Deep Learning Academy