# Tensor, Matrix, Block and Scalar

This page continues the address space from where [Model, Architecture, Layer and Module](/docs/core-concepts/model-architecture-layer-module) leaves off - the fine-grained half of the same eight-step drill ladder:

```
… → Module → Tensor → Tile/Block → Row/Col/Channel → Scalar
```

## Tensor

A named weight or activation tensor within a module - the level at which shape, dtype, and stride become meaningful (see [Shape, Rank, Stride and Layout](/docs/core-concepts/shape-rank-stride-layout)), and the level a [weight diff](/docs/compare-and-morph/weight-diff) is usually framed at.

## Tile / block

A bounded rectangular region within a tensor - the unit Tensormorph actually streams, computes statistics for, and renders at. A tile isn't a fixed size; it's sized appropriately for the current level of detail, so "one tile" means something coarser when you're viewing a whole layer and something finer once you've zoomed into a specific region. See [Level of Detail and Streaming](/docs/core-concepts/level-of-detail-and-streaming) for how tile granularity adapts to zoom.

## Row / column / channel

Below a tile, a single row, column, or channel - a one-dimensional slice through a tensor. This is the level the [Signal and Distribution Editor](/docs/editors/signal-and-distribution-editor)'s 1D views (Raw Value Plot, Layer Profile, Expert Profile) operate on, distinct from the 2D tile-level views.

## Scalar

A single number: one element of one tensor. The [Scalar Inspector](/docs/editors/scalar-inspector) is the dedicated view for this level, and it's also the finest-grained target for a probe or a runtime breakpoint (see [Runtime Traces](/docs/profiling/runtime-traces)).

## Every level shares one addressing scheme

A scalar's address is a strict refinement of its tensor's address, which is a strict refinement of its module's address, all the way up to the model. There's no separate coordinate system per level - zooming from the whole model to one scalar is narrowing the same address, not switching between unrelated schemes.

This is what makes a [TQL](/docs/reference/expressions-and-queries) expression like `model["layer.12"].tensor("*.q_proj.weight")[3, 7]` a single coherent path rather than a a join across separate systems, and it's why selection stays valid as you switch between the 3D, 2D, and 1D views at different points along the ladder - the address doesn't change, only which view is rendering it.

## Related resources

-   [Model, Architecture, Layer and Module](/docs/core-concepts/model-architecture-layer-module) - the coarse half of this same hierarchy.
-   [Shape, Rank, Stride and Layout](/docs/core-concepts/shape-rank-stride-layout) - the metadata that makes a tensor's internal addressing (tile, row, scalar) well-defined.
-   [Scalar Inspector](/docs/editors/scalar-inspector) - the dedicated view for the finest level of this ladder.
