Source codes for the paper "Applications of Unsupervised Deep Transfer Learning to Intelligent Fault Diagnosis: A Survey and Comparative Study"
This repository contains the implementation details of our paper: [IEEE Transactions on Instrumentation and Measurement] Applications of Unsupervised Deep Transfer Learning to Intelligent Fault Diagnosis: A Survey and Comparative Study by Zhibin Zhao, Qiyang Zhang, and Xiaolei Yu. The methods about multi-domain TL can be found in (https://github.com/zhanghuanwang1/UDTL_multi_domain) and the methods about label-inconsistent TL can be found in (https://github.com/xiaoleimiao/UDTL_Lable_Inconsistent).
This project just provides the baseline (lower bound) accuracies and a unified intelligent fault diagnosis library based on unsupervised deep transfer learning (UDTL) which retains an extended interface for everyone to load their own datasets and models by themselves to carry out new studies. Meanwhile, all the experiments are executed under Window 10 and Pytorch 1.3 through running on a computer with an Intel Core i7-9700K, GeForce RTX 2080Ti, and 16G RAM.
Part of the code refers to the following open source code:
This repository is organized as:
download datasets
use the train_base.py to test Basis and AdaBN (network-based DTL and instanced-based DTL)
for example, use the following commands to test Basis for CWRU with the transfer_task 0-->1
python train_base.py --data_name CWRU --data_dir D:/Data/CWRU --transfer_task [0],[1] --adabn ""
for example, use the following commands to test AdaBN for CWRU with the transfer_task 0-->1
python train_base.py --data_name CWRU --data_dir D:/Data/CWRU --transfer_task [0],[1]
use the train_advanced.py to test (mapping-based DTL and adversarial-based DTL)
for example, use the following commands to test DANN for CWRU with the transfer_task 0-->1
python train_advanced.py --data_name CWRU --data_dir D:/Data/CWRU --transfer_task [0],[1] --last_batch "" --distance_metric "" --domain_adversarial True --adversarial_loss DA
for example, use the following commands to test MK-MMD for CWRU with the transfer_task 0-->1
python train_advanced.py --data_name CWRU --data_dir D:/Data/CWRU --transfer_task [0],[1] --last_batch True --distance_metric True --distance_loss MK-MMD --domain_adversarial ""
Codes:
@misc{Zhao2019,
author = {Zhibin Zhao and Qiyang Zhang and Xiaolei Yu and Chuang Sun and Shibin Wang and Ruqiang Yan and Xuefeng Chen},
title = {Unsupervised Deep Transfer Learning for Intelligent Fault Diagnosis},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/ZhaoZhibin/UDTL}},
}
Paper:
@article{zhao2021applications,
title={Applications of Unsupervised Deep Transfer Learning to Intelligent Fault Diagnosis: A Survey and Comparative Study},
author={Zhibin Zhao and Qiyang Zhang and Xiaolei Yu and Chuang Sun and Shibin Wang and Ruqiang Yan and Xuefeng Chen},
journal={IEEE Transactions on Instrumentation and Measurement},
year={2021}
}