0Pricing
Mojo Academy · 课时

在 Mojo 中建模张量

形状、步幅与元素布局

在 Mojo 中建模张量 是 CoddyKit 上的免费 Mojo Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Mojo Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Mojo Academy 课程共包含 4 节课。

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

What Is a Tensor?

A tensor is just an n-dimensional grid of numbers. A vector is 1D, a matrix is 2D, and an image batch is often 4D.

Flat Memory Underneath

However many dimensions you imagine, a tensor really lives as one flat buffer of values in memory, laid out end to end.

var data = List[Float32](0, 1, 2, 3, 4, 5)

Shape Describes the Grid

The shape is a tuple of sizes, one per dimension. A shape of (2, 3) means two rows of three columns.

var shape = (2, 3)  # 2 rows, 3 cols

Indices Pick an Element

You name an element with one index per dimension. In a (2, 3) tensor, (1, 2) is the last column of the second row.

Strides Map to Memory

A stride tells you how many flat slots to jump to move one step along a dimension. Strides turn indices into a single offset.

var strides = (3, 1)  # row jump 3, col jump 1

The Offset Formula

Flatten any index by a dot product: offset equals the sum of each index times its stride. That offset reaches the right slot.

offset = i * strides[0] + j * strides[1]

Row-Major Layout

Mojo numeric code usually stores rows contiguously, called row-major. The last dimension has stride 1, so columns sit side by side.

Why Strides Are Powerful

With clever strides you can view, slice, or transpose a tensor without copying data. Only the strides change, not the buffer.

Element Type Matters

Every tensor has a fixed dtype, like Float32 or Int64. A uniform type lets Mojo pack values tightly and compute fast.

alias dtype = DType.float32

A Minimal Tensor Struct

You can model a tensor as a struct that bundles a data pointer with its shape and strides, keeping layout info in one place.

struct Tensor:
    var data: UnsafePointer[Float32]
    var shape: (Int, Int)
    var strides: (Int, Int)

Contiguous vs Strided

A contiguous tensor has no gaps, so a linear scan is cheap. Strided views may skip around, which can slow memory access.

Quick Check

You have a (2, 3) row-major tensor. How do you reach element (1, 2)?

Recap

A tensor is a flat buffer plus shape and strides; the offset formula maps indices to memory, and row-major keeps columns contiguous. 🧮

常见问题解答

「在 Mojo 中建模张量」课时是免费的吗?

是的 — 「在 Mojo 中建模张量」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Mojo Academy 课程的其余内容,请升级到 CoddyKit PRO。 Mojo Academy 课程共包含 4 节课。

「在 Mojo 中建模张量」这节课中我会学到什么?

形状、步幅与元素布局 你通过在浏览器中直接运行的动手代码来练习 Mojo Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Mojo Academy 需要有经验吗?

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

「在 Mojo 中建模张量」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 在 Mojo 中建模张量
  2. 逐步构建矩阵乘法
  3. 优化内积
  4. 验证数值正确性
← 返回 Mojo Academy