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")