Skip to content
guhou-hviPublic

About

Training code for CBAM-based PHVI classification and pitting-damage morphology regression associated with IJMS 2026.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Repository files navigation

AE-PDSM

中文说明

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

Scope

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.

Data contract

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.

Environment

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.

Training

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.

Data availability

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).

Citation

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.

License

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.

About

Training code for CBAM-based PHVI classification and pitting-damage morphology regression associated with IJMS 2026.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages