createModel
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:
Input Layer: Accepts feature vectors of size inputSize
Hidden Layers: Sequential dense layers with sizes from hiddenLayerSizes
Output Layer: Classification layer with numClasses neurons
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:
inputSizemust be 0 for valid feature dimensionsnumClassesmust be ≥ 2 for meaningful classificationhiddenLayerSizesmust 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
Number of input features/neurons in the input layer. Must be positive integer representing feature vector dimensionality.
Number of target classes for classification output. Must be ≥ 2 for binary/multi-class classification tasks.
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)