MLX Kolmogorov-Arnold Networks

community

AI & ML interests

KAN (Kolmogorov–Arnold Networks) in the MLX framework for Apple Silicon

Recent Activity

Goekdeniz-Guelmez  updated a Space about 1 month ago
mlx-kan/README
Goekdeniz-Guelmez  published a Space about 1 month ago
mlx-kan/README
View all activity

MLX KAN

A community org for model weights compatible with mlx-kan powered by MLX.

GitHub link: https://github.com/Goekdeniz-Guelmez/mlx-kan

These are weights converted from pytorch and ready to be used.

How to install

pip install mlx-kan

Models

To load a model with pre-trained weights or create one from scratch:

from mlx_kan.kan import KAN

# Initialize and use KAN
kan_model = KAN([in_features * out_features] + [hidden_dim] * (num_layers - 1) + [num_classes])

def train(model, train_set, train_labels, num_epochs=100):
  optimizer = optim.AdamW(learning_rate=0.0004, weight_decay=0.003)  # Initialize a new optimizer for each model
  loss_and_grad_fn = nn.value_and_grad(model, loss_fn)

  # For 1 step
  loss, grads = loss_and_grad_fn(model, train_set, train_labels)
  optimizer.update(model, grads)
  mx.eval(model.parameters(), optimizer.state)
  avg_loss = total_loss += loss.item()

  # Update grid points here
  for name, layer in model.__dict__.items():
    if isinstance(layer, KANLinear):
      with mx.no_grad():
        layer.update_grid(train_set)

models 0

None public yet

datasets 0

None public yet