createModel

fun createModel(inputSize: Int = 3, numClasses: Int = 4, hiddenLayerSizes: List<Int> = listOf(10, 10)): String(source)

Creates and configures a Multi-Layer Perceptron neural network model.

This method constructs a feedforward neural network with the specified architecture parameters, preparing it for training and inference operations.

Architecture Construction:

  1. Input Layer: Accepts feature vectors of size inputSize

  2. Hidden Layers: Sequential dense layers with sizes from hiddenLayerSizes

  3. Output Layer: Classification layer with numClasses neurons

  4. Activation Functions: ReLU for hidden layers, softmax for output

Current Stub Behavior:

  • Returns placeholder string identifier for model tracking

  • Logs configuration parameters for debugging and monitoring

  • Validates input parameters for future KotlinDL integration

Planned KotlinDL Implementation:

Sequential.of(
Dense(hiddenLayerSizes[0], Activations.Relu, input = inputSize),
Dense(hiddenLayerSizes[1], Activations.Relu),
Dense(numClasses, Activations.Softmax)
)

Parameter Validation:

  • inputSize must be 0 for valid feature dimensions

  • numClasses must be ≥ 2 for meaningful classification

  • hiddenLayerSizes must contain positive integers for layer dimensions

Performance Considerations:

  • Memory Usage: O(Σ(layer_i × layer_{i+1})) for weight matrices

  • Training Time: O(batch_size × epochs × total_parameters)

  • Inference Speed: O(total_parameters) per forward pass

Architecture Examples:

// Binary classification with single hidden layer
createModel(inputSize = 5, numClasses = 2, hiddenLayerSizes = listOf(8))

// Multi-class with deep architecture
createModel(inputSize = 10, numClasses = 7, hiddenLayerSizes = listOf(32, 16, 8))

// Wide shallow network for linear-like problems
createModel(inputSize = 20, numClasses = 3, hiddenLayerSizes = listOf(50))

Return

Model identifier string for tracking and reference. In full implementation, returns configured KotlinDL Sequential model instance.

Parameters

inputSize

Number of input features/neurons in the input layer. Must be positive integer representing feature vector dimensionality.

numClasses

Number of target classes for classification output. Must be ≥ 2 for binary/multi-class classification tasks.

hiddenLayerSizes

List of hidden layer neuron counts defining network depth and width. Each element must be positive integer. Empty list creates direct input→output connection.

See also

Default input layer size configuration

Default output layer size configuration

Throws

when parameters violate constraints (planned validation)