wing-selector-mlp / README.md
kevinkyi's picture
Update README.md
9c8e4f0 verified
|
raw
history blame
2.46 kB
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@group  
  • last.pt – final checkpoint after training  
  • config.json – input dim, #airfoils, feature scaler stats  
  • feature_names.json – expected feature order  
  • airfoil_vocab.json – airfoil name → id mapping used during training  
  • inference.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:
    1. 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.
    2. Objective ID: A one-hot encoded vector representing one of the three possible design objectives.
    3. Airfoil ID: An embedding vector that learns a representation for each unique airfoil in the training data.
  • Embedding Layer: An nn.Embedding layer 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%