aliases returns the initializer configuration as a python dict return serializationlib serializekerasobjectinitializer kerasexportkeras initializers deserialize def deserializeconfig customobjectsnone retrieves a keras initializer object via an identifier the identifier may be the string name of a initializers function or class casesensitively identifier ones keras initializers deserializeidentifier keras initializers initializers ones you can also specify config of the initializer to this function by passing dict containing classname and config as an identifier also note that the classname must map to a initializer class cfg classname ones config keras initializers deserializecfg keras initializers initializers ones in the case that the identifier is a class this method will return a new instance of the class by its constructor args identifier string or dict that contains the initializer name or configurations returns initializer instance base on the input identifier aliases returns the initializer configuration as a python dict returns a keras initializer object via its configuration retrieves a keras initializer object via an identifier the identifier may be the string name of a initializers function or class case sensitively identifier ones keras initializers deserialize identifier keras initializers initializers ones you can also specify config of the initializer to this function by passing dict containing class_name and config as an identifier also note that the class_name must map to a initializer class cfg class_name ones config keras initializers deserialize cfg keras initializers initializers ones in the case that the identifier is a class this method will return a new instance of the class by its constructor args identifier string or dict that contains the initializer name or configurations returns initializer instance base on the input identifier
import inspect

from keras.api_export import keras_export
from keras.initializers.constant_initializers import Constant
from keras.initializers.constant_initializers import Identity
from keras.initializers.constant_initializers import Ones
from keras.initializers.constant_initializers import Zeros
from keras.initializers.initializer import Initializer
from keras.initializers.random_initializers import GlorotNormal
from keras.initializers.random_initializers import GlorotUniform
from keras.initializers.random_initializers import HeNormal
from keras.initializers.random_initializers import HeUniform
from keras.initializers.random_initializers import LecunNormal
from keras.initializers.random_initializers import LecunUniform
from keras.initializers.random_initializers import OrthogonalInitializer
from keras.initializers.random_initializers import RandomNormal
from keras.initializers.random_initializers import RandomUniform
from keras.initializers.random_initializers import TruncatedNormal
from keras.initializers.random_initializers import VarianceScaling
from keras.saving import serialization_lib
from keras.utils.naming import to_snake_case

ALL_OBJECTS = {
    Initializer,
    Constant,
    Ones,
    Zeros,
    GlorotNormal,
    GlorotUniform,
    HeNormal,
    HeUniform,
    LecunNormal,
    LecunUniform,
    RandomNormal,
    TruncatedNormal,
    RandomUniform,
    VarianceScaling,
    OrthogonalInitializer,
}

ALL_OBJECTS_DICT = {cls.__name__: cls for cls in ALL_OBJECTS}
ALL_OBJECTS_DICT.update(
    {to_snake_case(cls.__name__): cls for cls in ALL_OBJECTS}
)

ALL_OBJECTS_DICT.update(
    {
        "uniform": RandomUniform,
        "normal": RandomNormal,
        "orthogonal": OrthogonalInitializer,
        "one": Ones,
        "zero": Zeros,
    }
)


@keras_export("keras.initializers.serialize")
def serialize(initializer):
    
    return serialization_lib.serialize_keras_object(initializer)


@keras_export("keras.initializers.deserialize")
def deserialize(config, custom_objects=None):
    
    return serialization_lib.deserialize_keras_object(
        config,
        module_objects=ALL_OBJECTS_DICT,
        custom_objects=custom_objects,
    )


@keras_export("keras.initializers.get")
def get(identifier):
    
    if identifier is None:
        return None
    if isinstance(identifier, dict):
        obj = deserialize(identifier)
    elif isinstance(identifier, str):
        config = {"class_name": str(identifier), "config": {}}
        obj = deserialize(config)
    else:
        obj = identifier

    if callable(obj):
        if inspect.isclass(obj):
            obj = obj()
        return obj
    else:
        raise ValueError(
            f"Could not interpret initializer identifier: {identifier}"
        )