Bayesian and frequentist deep learning models for remaining useful life (RUL) estimation are evaluated on simulated run-to-failure data. Implemented in PyTorch, developed and tested on Ubuntu 18.04 LTS. All the experiments were run on a publicly available Google Compute Engine Deep Learning VM instance with 2 vCPUs, 13 GB RAM, 1 NVIDIA Tesla K80 GPU and PyTorch 1.2 + fast.ai 1.0 (CUDA 10.0) framework.
Anaconda Python >= 3.6.4 (see https://www.anaconda.com/distribution/)
Clone or download the repository, open a terminal in the root directory and run the following commands:
conda env create -f environment.yml
conda activate bayesian-deep-rul
Now the virtual environment bayesian-deep-rul is active. To deactivate it, run:
conda deactivate
When you do not need it anymore, run the following command to remove it:
conda remove --name bayesian-deep-rul --all
The models were tested on the four simulated turbofan engine degradation subsets in the publicly available Commercial Modular Aero-Propulsion System Simulation (C-MAPSS) dataset. Check datasets/CMAPSS/README.md for instructions on how to download the dataset.
Open a terminal in the root directory, activate the virtual environment and run one of the following commands:
-
sh train.sh
to train the selected model. Parameters can be modified by editing train.sh -
sh evaluate.sh
to evaluate the selected model. Parameters can be modified by editing evaluate.sh -
sh run_experiments.sh
to replicate the experiments on the C-MAPSS dataset
Open a terminal in the root directory, activate the virtual environment and run tensorboard --logdir .
to monitor the training process with TensorBoard. If you are training on a remote server, connect through SSH and forward a port from the remote server to your local computer (gcloud compute ssh <your-vm-name> --zone=<your-vm-zone> -- -L 6006:localhost:6006
on a Google Compute Engine Deep Learning VM instance).
Training and evaluation logs of the experimental results are provided for verification. Run results/results.ipynb in Jupyter Notebook to check the results by yourself.