metadata
library_name: pytorch
tags:
- tabular
- pytorch
- classification
- aviation
- wing-design
datasets:
- ecopus/transport-wings-500
license: mit
Wing Selector MLP
This repository contains a PyTorch MLP that scores aircraft-style wings within the same airfoil for a chosen objective:
- min_cd (minimize drag),
- max_cl (maximize lift),
- max_ld (maximize lift-to-drag).
It was trained on the dataset ecopus/transport-wings-500.
Files
best.pt– best checkpoint by validation top-1@grouplast.pt– final checkpoint after trainingconfig.json– input dim, #airfoils, feature scaler statsfeature_names.json– expected feature orderairfoil_vocab.json– airfoil name → id mapping used during traininginference.py– minimal loader & scoring helper
Model Architecture
The model is a feedforward neural network designed for a binary classification task. It predicts the "best" wing geometry for a given airfoil and aerodynamic objective.
- Inputs: The model takes three inputs:
- Wing Features: A vector of 22 continuous features describing the wing's geometry and aerodynamic properties. These features are standardized (mean-centered and scaled by standard deviation) before being fed into the model.
- Objective ID: A one-hot encoded vector representing one of the three possible design objectives.
- Airfoil ID: An embedding vector that learns a representation for each unique airfoil in the training data.
- Embedding Layer: An
nn.Embeddinglayer converts the discrete airfoil ID into a dense 8-dimensional vector. - Hidden Layers: The core of the network consists of two fully connected hidden layers, each with 128 neurons and using the ReLU activation function.
- Output Layer: A final linear layer outputs a single logit, which represents the model's prediction score.
Training Hyperparameters
| Hyperparameter | Value |
|---|---|
| Epochs | 50 |
| Batch Size | 64 |
| Learning Rate | 2e-3 |
| Optimizer | AdamW |
| LR Scheduler | CosineAnnealingLR |
| Loss Function | BCEWithLogitsLoss |
| Seed | 42 |
Final Training Metrics
| Metric | Value |
|---|---|
| Validation AUC | 0.9790 |
| Validation Avg. Precision | 0.638 |
| Validation Top-1 Accuracy | 50.0% |