Dense
classin packageklyn.math.nn.layers
public class Dense<T extends AbstractFloat = Float> extends Layer<T>
Dense

An affine layer: output = inputs @ weights + bias, in row-major layout. Batches have shape [samples, inputs]; outputs have shape [samples, units]. Optional relu, sigmoid, tanh or softmax activation is included in the layer. Training contexts retain pre-activations only for the current batch, avoiding a second matrix product.

Example

layer = Dense<Float>(128, inputSize=784, seed=17)

Properties
Modifier and Type Member Description
public readonly property activation
activation as String
Configured activation identifier.
public readonly property bias
bias as NDArray<T>
Mutable zero-initialized bias [1, units].
public override readonly property displayName
displayName as String
Affine stage and configured activation name.
public override readonly property inputShapeHint
inputShapeHint as IList<Long>
Known input width, or an empty shape until build.
public readonly property inputSize
inputSize as ULong
Number of input features; zero until a deferred layer is built.
public override readonly property parameterCount
parameterCount as ULong
Two trainable matrices: weights, then bias.
public readonly property seed
seed as Long
Initialization seed, retained in checkpoints.
public readonly property units
units as ULong
Number of output features.
public readonly property weights
weights as NDArray<T>
Mutable parameters [inputs, units].
Constructors
Modifier and Type Member Description
public Dense
Dense(units as Long, inputSize as Long = -1l, seed as Long = 1l, activation as String = "linear")
Allocates parameters using seeded Glorot uniform initialization.
Methods
Modifier and Type Member Description
public backward
backward(inputs as NDArray<T>, upstream as NDArray<T>) as DenseGradients<T>
Computes exact affine derivatives using the current weights.
public override backwardTraining
backwardTraining(context as LayerPass<T>, upstream as NDArray<T>) as LayerGradients<T>
Differentiates the saved affine result without repeating its matrix product.
public build
build(inputSize as Long) as Long
Allocates seeded parameters once, or validates an existing input width.
public override buildShape
buildShape(inputShape as IList<Long>) as IList<Long>
Infers the input width from vector sample dimensions.
public override differentiate
differentiate(inputs as NDArray<T>, upstream as NDArray<T>) as LayerGradients<T>
Adapts affine derivatives to the common layer contract.
public override forward
forward(inputs as NDArray<T>) as NDArray<T>
Applies the affine transform followed by the configured activation.
public override forwardTraining
forwardTraining(inputs as NDArray<T>) as LayerPass<T>
Saves pre-activations in an explicit, batch-local backward context.
public override parameter
parameter(index as Long) as NDArray<T>
Returns weights (0) or bias (1) without copying.