# utils.py ARCH_ANALOGIES = { "cnn": "🍲 CNN is like a sieve — strains local patterns from your data broth, layer by layer.", "rnn": "⏲️ RNN is your slow-simmer pot — remembers earlier flavors to enrich the final dish.", "transformer": "🌡️ Transformer is your sous-vide — precise, parallel, deeply flavorful at every layer." } def get_auto_hyperparams(arch_type, num_layers): """Auto-Seasoning™ — smart defaults based on architecture and depth""" base_config = { "cnn": {"lr": 1e-3, "epochs": 3, "batch": 16}, "rnn": {"lr": 5e-4, "epochs": 4, "batch": 8}, "transformer": {"lr": 3e-4, "epochs": 3, "batch": 4} } config = base_config.get(arch_type, base_config["transformer"]) # Adjust for layer depth if num_layers > 8: config["lr"] *= 0.6 config["epochs"] += 2 config["batch"] = max(2, config["batch"] // 2) elif num_layers < 4: config["lr"] *= 1.3 config["batch"] = min(32, config["batch"] * 2) return { "learning_rate": round(config["lr"], 6), "epochs": config["epochs"], "batch_size": config["batch"] }