AE-PDSM is a lightweight research-code archive containing the training components associated with the article:
Peng Ji, Runqiang Chi, Wuxiong Cao, Jiaxin Gao, and Houyang Wang, “Surrogate model-based online quantitative prediction of pitting damage in spacecraft,” International Journal of Mechanical Sciences, 315 (2026) 111416. https://doi.org/10.1016/j.ijmecsci.2026.111416
This release contains two training entry points:
- train_classifier.py trains the PHVI/NPHVI classifier.
- train_regressor.py trains the pitting-damage morphology regressor on NPHVI samples.
- ae_pdsm contains the four-channel CBAM-ResNet18 models, manifest dataset, composite regression loss, and shared training utilities.
This is a source-code snapshot, not a complete reproduction package. It does not include research data, example data, preprocessing code, trained weights, an inference example, tests, or continuous integration. The code is provided as is, and reproduction of the numerical results reported in the article is not guaranteed.
The pre-release repository contents, including the earlier LS-DYNA post-processing and experimental code, remain available at v1.0-alpha, which points to the original commit 6342483.
The training scripts read a UTF-8 CSV manifest with these columns:
case_id,input_path,label,target_path
case_001,samples/input_0001.npy,0,samples/target_0001.npy
case_008,samples/input_1024.npy,1,
Each row describes one preprocessed sample. Paths may be relative to --data-root. Files must be NumPy .npy arrays without pickled objects:
- input_path: float-compatible array with shape [4, 224, 224].
- label: 0 for NPHVI and 1 for PHVI.
- target_path: array with shape [1, 151, 151] and values in [0, 1]. It is required for label-0 samples used by the regressor and may be empty for label-1 samples.
All augmented samples originating from the same physical impact case must use the same case_id. The scripts split folds by case, preventing augmented samples from the same case from appearing in both training and validation sets. Classification uses stratified case-level folds; regression automatically retains only label-0 samples.
Input normalization and all other preprocessing must be completed before creating the arrays. No hidden preprocessing is performed by this repository.
Python 3.10 or newer is recommended.
python -m venv .venv
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
The pinned PyTorch package is a platform-neutral baseline. Install the appropriate PyTorch build first if a particular CUDA runtime is required, then install the remaining requirements.
Run all eight case-level folds:
python train_classifier.py --manifest path/to/manifest.csv --data-root path/to/data --output-dir outputs/classifier
python train_regressor.py --manifest path/to/manifest.csv --data-root path/to/data --output-dir outputs/regressor
Use --fold 0 to run only the first fold. Run either script with --help for all hyperparameters.
The classifier uses a randomly initialized four-channel CBAM-ResNet18, cross-entropy loss, Adam, CUDA automatic mixed precision when available, and validation-loss early stopping. The regressor uses the same encoder with two residual refinement blocks and five transposed-convolution decoder stages. It predicts one output channel. Regression begins with MSE and, from --switch-epoch onward, optimizes MSE plus weighted SSIM and Laplacian edge losses. Its Adam learning rate follows cosine annealing to 1e-8 by default.
Generated histories and state-dict checkpoints are written below --output-dir and are intentionally ignored by Git.
No data or model weights are distributed in this repository. As stated in the article, data are available from the authors on request. Requests may be directed to the corresponding author, Wuxiong Cao (wuxiong.cao@hit.edu.cn).
Please cite the journal article:
@article{Ji2026Surrogate,
title = {Surrogate model-based online quantitative prediction of pitting damage in spacecraft},
author = {Ji, Peng and Chi, Runqiang and Cao, Wuxiong and Gao, Jiaxin and Wang, Houyang},
journal = {International Journal of Mechanical Sciences},
volume = {315},
pages = {111416},
year = {2026},
doi = {10.1016/j.ijmecsci.2026.111416}
}
GitHub also exposes the same metadata from CITATION.cff.
The source code in this release is licensed under the MIT License. The license does not apply to the article or to any research data that may be shared separately.