Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Tensorflow Tfjs Initializers Test

From Leeroopedia


Knowledge Sources
Domains Testing, Layers_API
Last Updated 2026-02-10 06:00 GMT

Overview

This test suite validates all weight initializer implementations in TensorFlow.js Layers. Initializers are responsible for setting the initial values of layer weights before training. The suite tests deterministic initializers (Zeros, Ones, Constant, Identity), random initializers (RandomUniform, RandomNormal, TruncatedNormal), variance-scaled initializers (GlorotUniform, GlorotNormal, HeNormal, HeUniform, LecunNormal, LecunUniform), and the Orthogonal initializer. Tests verify output shapes, dtypes, value ranges, statistical properties, serialization round-trips, and memory safety.

Code Reference

Source Location: tfjs-layers/src/initializers_test.ts (851 lines)

Repository: GitHub

Test Describe Blocks

  • Zeros initializer - All-zeros initialization (1D, 2D, case-insensitive naming)
  • Ones initializer - All-ones initialization
  • Constant initializer - Constant value initialization from config dict and builder
  • Identity initializer - Identity matrix initialization
  • RandomUniform initializer - Uniform random values within range
  • RandomNormal initializer - Normal distribution random values
  • HeNormal initializer - He normal variance scaling
  • HeUniform initializer - He uniform variance scaling
  • LecunNormal initializer - Lecun normal variance scaling
  • LeCunUniform initializer - Lecun uniform variance scaling
  • TruncatedNormal initializer - Truncated normal distribution
  • Glorot uniform initializer - Xavier/Glorot uniform
  • VarianceScaling initializer - General variance scaling with configurable fan mode and distribution
  • Glorot normal initializer - Xavier/Glorot normal
  • initializers.get - Initializer lookup by string name
  • Invalid initializer identifier - Error handling for unknown initializers
  • checkFanMode - Validation of fan mode values (fanIn, fanOut, fanAvg)
  • checkDistribution - Validation of distribution values (normal, uniform, truncatedNormal)
  • Orthogonal Initializer - Orthogonal matrix initialization

I/O Contract

Inputs to tests:

  • Shape arrays (e.g., [3], [2, 2], [4, 6])
  • Data types (float32)
  • Initializer configuration dicts and string identifiers
  • Seed values for reproducible random initializations

Expected outputs/assertions:

  • Output tensors have correct shape and dtype
  • Deterministic initializers produce exact values (all zeros, all ones, constant, identity)
  • Random initializers produce values within expected statistical ranges (mean, stddev, min, max)
  • Variance scaling respects fan-in/fan-out calculations
  • Orthogonal initializer produces matrices with orthogonal columns
  • Memory leak checks via expectNoLeakedTensors

Usage Example

describeMathCPU('Zeros initializer', () => {
  it('1D', () => {
    const init = getInitializer('zeros');
    const weights = init.apply([3], 'float32');
    expect(weights.shape).toEqual([3]);
    expect(weights.dtype).toEqual('float32');
    expect(weights.dataSync()).toEqual(new Float32Array([0, 0, 0]));
  });
  it('Does not leak', () => {
    expectNoLeakedTensors(() => getInitializer('zeros').apply([3]), 1);
  });
});

Test Coverage Summary

Category Count Details
Deterministic Initializers 4 Zeros, Ones, Constant, Identity
Random Initializers 3 RandomUniform, RandomNormal, TruncatedNormal
Variance Scaling 7 Glorot (uniform/normal), He (normal/uniform), Lecun (normal/uniform), general VarianceScaling
Orthogonal 1 Matrix orthogonality tests
Utility 4 get, checkFanMode, checkDistribution, invalid identifier
Memory Leak Tests Per initializer expectNoLeakedTensors
Test Environment CPU (mostly) describeMathCPU, describeMathCPUAndWebGL2 for Orthogonal

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment