// Iris: Fisher (1936), UCI, CC BY 4.0. See THIRD_PARTY_DATA.md.
// Same model code in production and development; --dev enables observation.
import aner.dataset
import aner.nn
import aner.ml
import aner.dev

let split = dataset.iris().split(test: 0.2, seed: 2026)
let network = nn.sequential(seed: 42)
    .dense(inputs: 4, outputs: 8,
           weights: nn.random(4, 8, seed: 7, scale: 0.25),
           bias: nn.zeros(1, 8))
    .tanh()
    .dense(inputs: 8, outputs: 3)
let pipeline = ml.classifier(network, standardize: true,
                             loss: "cross_entropy", optimizer: "sgd")
print(network.summary())
print(pipeline.summary())
dev.capture("Configured network", network)
let fitted = pipeline.fit(split.train(), epochs: 400, rate: 0.1)
dev.capture("Trained model", fitted)
print(fitted.evaluate(split.test()).summary())
