vanillanets
Examples

Regression

Train a regression model on the California Housing dataset using a feed-forward neural network.

Example

import numpy as np
from sklearn.datasets import fetch_california_housing
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split

from vanillanets.layers import DenseLayer
from vanillanets.activations import ReLU, Linear
from vanillanets.losses import MeanSquaredError
from vanillanets.optimizers import Optimizer_Adam
from vanillanets.model import Model
from vanillanets.metrics import R2Score, MAE, RMSE

# Load dataset
X, y = fetch_california_housing(return_X_y=True)
y = y.reshape(-1, 1)

# Optional: sample a subset for faster training
indices = np.random.choice(len(X), 15000, replace=False)
X, y = X[indices], y[indices]

# Preprocess
X = StandardScaler().fit_transform(X)

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(8, 64))
model.add(ReLU())
model.add(DenseLayer(64, 64))
model.add(ReLU())
model.add(DenseLayer(64, 1))
model.add(Linear())

# Configure training
model.set(
    loss=MeanSquaredError(),
    optimizer=Optimizer_Adam(learning_rate=0.01, decay=1e-3),
    metrics=[R2Score(), MAE(), RMSE()]
)

model.finalize()

# Train
model.fit(
    X_train,
    y_train,
    epochs=100,
    print_every=10,
    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}")

Network Architecture

Dense(8 → 64)

     ReLU

Dense(64 → 64)

     ReLU

 Dense(64 → 1)

     Linear

On this page