Kết xuấtvi

tensor-shape-generic

Translation status: Tiếng Việt reader-locale proof. Term names and code fences follow the vi pack; supporting prose may still be English.

Shape-generic tensor functions: a kích_thước shape param binds implicitly at call sites.

Syntax: hàm name<T, kích_thước Figura>(ten_xo<T, Figura> …) → ten_xo<T, Figura>

Category#

type

Examples#

radix/corpus/tensor/generic-shape.fab (canonical · concept)#

Shape-generic tensor functions: a kích_thước shape param binds implicitly at call sites.

# =============================================================================
# tensor-shape-generic — shape-generic ten_xo functions (kích_thước Figura)
# =============================================================================
#
# What this teaches:
#   • A `kích_thước Figura` shape param stands for the whole ten_xo shape; the
#     shape is rank-agnostic, so one signature covers `[4]`, `[2, 2]`, `[1, 2]`,
#     and `[]` witnesses.
#   • The typechecker binds the shape param implicitly at call sites from the
#     argument shapes or the expected type — no explicit figura arguments.
#   • Fully static bodies compose elementwise ops (`reple`, `multiplica`,
#     `subtrahe`) whose results keep the same shape symbolically.
#
# Common mistakes:
#   • Spelling the shape as a rank-1 tuple `[Figura]` — that only matches
#     rank-1 witnesses; use the bare `Figura` for rank-agnostic shapes.
#   • Expecting a shape param bound by neither arguments nor the expected type
#     to guess: it errors (SEM014) instead.
#
# See also: ten_xo, kích_thước, hàm, vectơ
# =============================================================================

# One generic `sgd_step` replaces the concrete [4]/[2,2]/[1,2]/[] overloads:
# the param/grad pair shares `Figura`, so every elementwise step proves the
# same-shape result.

hàm sgd_step<kích_thước Figura>(ten_xo<f32, Figura> param, ten_xo<f32, Figura> grad, f32 lr) → ten_xo<f32, Figura> {
    hằng ten_xo<f32, Figura> lr_fill ← param.điền(lr)
    hằng ten_xo<f32, Figura> scaled ← grad.nhân(lr_fill)
    trả param.trừ(scaled)
}

ghi_chú "shape-generic sgd_step parata"

Expected output:

shape-generic sgd_step parata