vanillanets
Examples

Multiclass Classification

Train a multiclass classifier on the Digits dataset using a dense neural network with a Softmax output layer.

Example

import numpy as np
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split

from vanillanets.layers import DenseLayer
from vanillanets.activations import ReLU, Softmax
from vanillanets.losses import CategoricalCrossEntropy
from vanillanets.optimizers import Optimizer_Adam
from vanillanets.model import Model
from vanillanets.metrics import Accuracy, Precision, Recall, F1Score, ConfusionMatrix

# Load dataset
X, y = load_digits(return_X_y=True)
X = X / 16.0

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# Build model
model = Model()
model.add(DenseLayer(64, 128))
model.add(ReLU())
model.add(DenseLayer(128, 10))
model.add(Softmax())

# Configure training
model.set(
    loss=CategoricalCrossEntropy(),
    optimizer=Optimizer_Adam(learning_rate=0.05, decay=1e-4),
    metrics=[Accuracy(), Precision(), Recall(), F1Score()]
)

model.finalize()

# Train
model.fit(
    X_train,
    y_train,
    epochs=10,
    print_every=1,
    validation_data=(X_test, y_test)
)

# Evaluate
loss, metrics = model.evaluate(X_test, y_test)

print(f"Loss: {loss:.3f}")
for name, value in metrics.items():
    print(f"{name}: {value:.3f}")

# Confusion Matrix
cm = ConfusionMatrix().calculate(
    model.predict(X_test),
    y_test,
    num_classes=10
)

print(cm)

Network Architecture

Dense(64 → 128)

      ReLU

 Dense(128 → 10)

     Softmax

On this page