The code includes the following modules:
- Datasets (digits, coil20, coil100, Mnist, EMNIST, KMnsit, Colon, Activity, MCA, Gast10K, Samusik, HCL)
- Training for EVNet
- Evaluation metrics
- Visualisation
- pytorch == 2.1.2
- pytorch-lightning == 1.9.0
- torchvision == 0.16.2
- numpy == 1.26.2
- scikit-learn == 1.3.2
- wandb == 0.16.1
- ./EVNet_main.py -- End-to-end training of the EVNet model
- ./eval
- eval/eval_core.py -- The code for evaluate the embedding
- ./Loss -- Calculate losses
- ./Loss/dmt_loss_aug.py -- The EVNet loss
- ./Loss/dmt_loss_source.py -- The template of loss function
- ./eval -- The yaml file for gird search
- ./dataloader -- the dataloader
- ./dataloader/source.py -- The template of dataset
- ./dataloader/data_base.py -- The EVNet dataset
The datasets include six simple image datasets (Digits, Coil20, Coil100, Mnist, EMnist, KMnist) and six biological datasets (Colon, Activity, MCA, Gast10k, SAMUSIK, and HCL).
bash main.sh
If you want to use your own dataset, you can use the following command:
CUDA_VISIBLE_DEVICES=-1 python EVNet_main.py --data_name CSV --num_fea_aim 64 --nu 5e-3 --epochs 90 --data_path=data/niu/
If you use 'data/niu/'. The data file should named as data/niu/data.csv, the label file file should named as data/niu/label.csv.
@article{zang2023evnet,
title={Evnet: An explainable deep network for dimension reduction},
author={Zang, Zelin and Cheng, Shenghui and Lu, Linyan and Xia, Hanchen and Li, Liangyu and Sun, Yaoting and Xu, Yongjie and Shang, Lei and Sun, Baigui and Li, Stan Z},
journal={IEEE Transactions on Visualization and Computer Graphics},
year={2023},
publisher={IEEE}
}
EVNet is released under the MIT license.