L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

params-state-rng

params-state-rng

Author and debug Haiku Module classes, direct parameter/state APIs, RNG keys, naming scopes, and interception hooks.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: params-state-rng description: "Author and debug Haiku Module classes, direct parameter/state APIs, RNG keys, naming scopes, and interception hooks." disable-model-invocation: true metadata: disco-role: operating license: Apache 2.0

params-state-rng

Use this sub-skill when you need to write or debug code that lives inside a Haiku transformed function and directly creates modules, parameters, mutable state, random keys, names, or API hooks.

Use this for

  • Implementing hk.Module subclasses and their __init__ / __call__ patterns.
  • Creating or reusing values with hk.get_parameter, hk.get_state, and hk.set_state.
  • Debugging Haiku parameter/state tree keys, module names, name scopes, and parameter sharing.
  • Managing stochastic code with hk.PRNGSequence, hk.next_rng_key, hk.next_rng_keys, and hk.maybe_next_rng_key.
  • Applying advanced hooks: hk.custom_creator, hk.custom_getter, hk.custom_setter, and hk.intercept_methods.

Route away when

  • Choosing hk.transform, hk.transform_with_state, hk.without_apply_rng, or multi-transform wrappers: use the core-transforms sub-skill.
  • Selecting built-in layers, networks, attention, convolutions, normalization, or RNN modules: use the modules-and-networks sub-skill.
  • Wrapping Haiku state/RNG through jax.vmap, jax.scan, jax.grad, control flow, lifting, or data-structure utilities: use the jax-interop-and-advanced sub-skill.
  • Translating Haiku parameters/state to Flax variable collections: use the flax-interop sub-skill.

Operating procedure

  1. Confirm that the code using Haiku direct APIs will run inside a transformed function. If not, first choose the correct transform in core-transforms.
  2. Sketch the expected parameter and state tree keys before coding: outer module/name-scope path first, leaf parameter/state name second.
  3. For custom modules, call super().__init__(name=name) before creating submodules or values, and create parameters/state inside transformed calls rather than at import time.
  4. For state, use hk.transform_with_state and pass state into and out of apply.
  5. For RNG, pass a non-None JAX PRNG key to init or apply whenever hk.next_rng_key() may execute; use hk.maybe_next_rng_key() only for deliberately optional randomness.
  6. Run the bundled smoke script after edits to confirm parameter keys, state updates, and RNG failure/recovery behavior.

Bundled references and script

Skills enregistrées