Module degann.networks.layer_creator

Expand source code
from collections import defaultdict

import keras.initializers
import numpy as np
from tensorflow import Tensor

from degann.networks.layers.tf_dense import TensorflowDense


def create(
    inp_size,
    shape,
    activation="linear",
    weight=keras.initializers.get("ones"),
    bias=keras.initializers.get("zeros"),
    layer_type="Dense",
    is_debug=False,
    **kwargs
) -> object:
    """
    Create layer by parameters

    Parameters
    ----------
    inp_size: int
        layer input size
    shape: int
        amount of neurons in layer
    activation: str
        activation function for neurons
    weight
    bias
    layer_type: str
        type of layer for create
    is_debug: bool
    kwargs

    Returns
    -------
    layer
        Created layer
    """
    layer = _create_functions[layer_type](
        inp_size, shape, activation, weight, bias, is_debug=is_debug, **kwargs
    )
    return layer


def create_dense(
    inp_size,
    shape,
    activation="linear",
    weight=keras.initializers.get("ones"),
    bias=keras.initializers.get("zeros"),
    **kwargs
) -> TensorflowDense:
    """
    Create dense layer by parameters

    Parameters
    ----------
    inp_size: int
        layer input size
    shape: int
        amount of neurons in layer
    activation: str
        activation function for neurons
    weight
    bias
    kwargs

    Returns
    -------
    layer
        Created dense layer
    """
    layer = create(
        inp_size, shape, activation, weight, bias, layer_type="Dense", **kwargs
    )
    return layer


def from_dict(config):
    """
    Restore layer from dictionary of parameters

    Parameters
    ----------
    config: dict

    Returns
    -------
    layer
        Restored layer
    """
    res = create(
        inp_size=config["inp_size"],
        shape=config["shape"],
        layer_type=config["layer_type"],
    )
    res.from_dict(config)

    return res


_create_functions = defaultdict(lambda: TensorflowDense)
_create_functions["Dense"] = TensorflowDense

Functions

def create(inp_size, shape, activation='linear', weight=<keras.src.initializers.constant_initializers.Ones object>, bias=<keras.src.initializers.constant_initializers.Zeros object>, layer_type='Dense', is_debug=False, **kwargs) ‑> object

Create layer by parameters

Parameters

inp_size : int
layer input size
shape : int
amount of neurons in layer
activation : str
activation function for neurons
weight
 
bias
 
layer_type : str
type of layer for create
is_debug : bool
 
kwargs
 

Returns

layer
Created layer
Expand source code
def create(
    inp_size,
    shape,
    activation="linear",
    weight=keras.initializers.get("ones"),
    bias=keras.initializers.get("zeros"),
    layer_type="Dense",
    is_debug=False,
    **kwargs
) -> object:
    """
    Create layer by parameters

    Parameters
    ----------
    inp_size: int
        layer input size
    shape: int
        amount of neurons in layer
    activation: str
        activation function for neurons
    weight
    bias
    layer_type: str
        type of layer for create
    is_debug: bool
    kwargs

    Returns
    -------
    layer
        Created layer
    """
    layer = _create_functions[layer_type](
        inp_size, shape, activation, weight, bias, is_debug=is_debug, **kwargs
    )
    return layer
def create_dense(inp_size, shape, activation='linear', weight=<keras.src.initializers.constant_initializers.Ones object>, bias=<keras.src.initializers.constant_initializers.Zeros object>, **kwargs) ‑> TensorflowDense

Create dense layer by parameters

Parameters

inp_size : int
layer input size
shape : int
amount of neurons in layer
activation : str
activation function for neurons
weight
 
bias
 
kwargs
 

Returns

layer
Created dense layer
Expand source code
def create_dense(
    inp_size,
    shape,
    activation="linear",
    weight=keras.initializers.get("ones"),
    bias=keras.initializers.get("zeros"),
    **kwargs
) -> TensorflowDense:
    """
    Create dense layer by parameters

    Parameters
    ----------
    inp_size: int
        layer input size
    shape: int
        amount of neurons in layer
    activation: str
        activation function for neurons
    weight
    bias
    kwargs

    Returns
    -------
    layer
        Created dense layer
    """
    layer = create(
        inp_size, shape, activation, weight, bias, layer_type="Dense", **kwargs
    )
    return layer
def from_dict(config)

Restore layer from dictionary of parameters

Parameters

config : dict
 

Returns

layer
Restored layer
Expand source code
def from_dict(config):
    """
    Restore layer from dictionary of parameters

    Parameters
    ----------
    config: dict

    Returns
    -------
    layer
        Restored layer
    """
    res = create(
        inp_size=config["inp_size"],
        shape=config["shape"],
        layer_type=config["layer_type"],
    )
    res.from_dict(config)

    return res