---
title: "clika_runtime.nn.init"
sidebar_label: "clika_runtime.nn.init"
description: "The clika_runtime.nn.init module, introspected from the installed wheel."
---

<!-- Generated by tools/api_reference/generate_api_docs.py. Do not edit. -->

Initializers: fill a tensor in place from a named distribution or law.

Every function here writes through in-place operations on the tensor it
is given and returns that same object, so the call composes with a
:class:`~clika_runtime.nn.Parameter` and reads as in a model's
``reset_parameters``::

    import clika_runtime.nn.init as init

    init.kaiming_uniform_(self.weight, a=math.sqrt(5))
    init.zeros_(self.bias)
    init.trunc_normal_(self.pos_embed, std=0.02)

Fan-in and fan-out read the runtime's channels-last weight layouts: a
linear weight is ``[out, in]``, a convolution weight is
``[out, *kernel, in / groups]``, and a transposed-convolution weight is
``[in, *kernel, out / groups]``. The trailing axis carries the input
channels and the middle axes the kernel, so ``fan_in`` is the trailing
extent times the kernel elements and ``fan_out`` the leading extent times
the kernel elements; a 2-d weight reads ``fan_in = shape[1]``,
``fan_out = shape[0]``. The values agree with the fans of the same weight
in the channels-first layout.

A tensor without storage (one declared under meta init, or a slot a layer
has not bound yet) cannot be written: every initializer raises
RuntimeError there. Materialize it first (``Module.to_empty``) or load a
checkpoint into it. ``orthogonal_`` and ``sparse_`` are absent: they need
a QR factorization the operator set does not provide.

Randomness comes from the device's generator; seed it through the
device namespace. The ``generator`` parameter is accepted for call-site
compatibility and must be ``None``.

| Name | Kind |
| --- | --- |

| [functions](./functions.md) | module functions |