termux-train Logo

termux-train

v0.1.0 (Native)
PyPI (pip) 💖 Sponsor GitHub

Quickstart & Practical Recipes

Build, train, and recover neural networks with crash-resilient checkpoints.

Recipe 1: Non-Linear XOR Classification

from termux_train import Tensor, nn, optim

# 1. Define Model Architecture
model = nn.Sequential(
    nn.Linear(2, 8),
    nn.Tanh(),
    nn.Linear(8, 1),
    nn.Sigmoid()
)
optimizer = optim.Adam(model.parameters(), lr=0.05)
criterion = nn.MSELoss()

# 2. XOR Dataset
x = Tensor([[0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0]])
target = Tensor([[0.0], [1.0], [1.0], [0.0]])

# 3. Training Loop
for epoch in range(500):
    optimizer.zero_grad(set_to_none=True)
    pred = model(x)
    loss = criterion(pred, target)
    loss.backward()
    optimizer.step()
    if epoch % 100 == 0:
        print(f"Epoch {epoch} | Loss: {loss.item():.6f}")

Recipe 2: Mobile Training Runtime with Safe Checkpointing

from termux_train import Tensor, nn, optim, runtime

trainer = runtime.MobileTrainer(
    model=model,
    optimizer=optimizer,
    criterion=criterion,
    checkpoint_dir="./checkpoints",
    checkpoint_every_epochs=10
)

# Train with automatic atomic checkpoint writing
trainer.fit(dataset=(x, target), epochs=50)

# Resume from saved checkpoint after interruption
trainer.fit(dataset=(x, target), epochs=50, resume_from="./checkpoints/checkpoint_latest.json")