This is a training framework based on PyTorch, which is used to rapidly build the model, without caring about the training process (such as DDP or DP, Tensorboard, et al.). The demo for use can be found in FrameworkTemplate (https://github.com/Archaic-Atom/Template-jf). if you have any questions, please send an e-mail to raoxi36@foxmail.com
Document:https://www.wolai.com/archaic-atom/rqKJVi7M1x44mPT8CdM1TL
Demo Project: https://github.com/Archaic-Atom/Demo-jf
1) OS Environment
$ os >= linux 16.04
$ cudaToolKit >= 10.1
$ cudnn >= 7.3.6
2) Python Environment
$ python == 3.8.5
$ pythorch >= 1.15.0
$ numpy == 1.14.5
$ opencv == 3.4.0
$ PIL == 5.1.0
This framework is only used in GPUs.
1) Build env
$ conda env create -f environment.yml
$ conda activate JackFramework-torch1.7.1
2) Install the JackFramework lib
$ ./install.sh
3) Check the version (optional)
$ python -c "import JackFramework as jf; print(jf.version())"
4) the template for using the JackFramework
you can find the template project in: https://github.com/Archaic-Atom/FameworkTemplate
you can find the demo project in: https://github.com/Archaic-Atom/Demo-jf
Related Arguments for training or testing process
Args | Type | Description | Default |
---|---|---|---|
mode | [str] | train or test | train |
gpu | [int] | the number of gpus | 2 |
auto_save_num | [int] | the number of interval save | 1 |
dataloaderNum | [int] | the number of dataloader | 8 |
pretrain | [bool] | is a new training process | False |
ip | [str] | used for distributed training | 127.0.0.1 |
port | [str] | used for distributed training | 8086 |
dist | [bool] | distributed training (DDP) | True |
trainListPath | [str] | the list for training or testing | ./Datasets/*.csv |
valListPath | [str] | the list for validate process | ./Datasets/*.csv |
outputDir | [str] | the folder for log file | ./Result/ |
modelDir | [str] | the folder for saving model | ./Checkpoint/ |
resultImgDir | [str] | the folder for output | ./ResultImg/ |
log | [str] | the folder for tensorboard | ./log/ |
sampleNum | [int] | the number of sample for data | 1 |
batchSize | [int] | batch size | 4 |
lr | [float] | learning rate | 0.001 |
maxEpochs | [int] | training epoch | 30 |
imgWidth | [int] | the cutting width | 512 |
imgHeight | [int] | the cutting height | 256 |
imgNum | [int] | the number of images for training | 35354 |
valImgNum | [int] | the number of images for val | 200 |
modelName | [str] | the model's name | NLCA-Net |
dataset | [str] | the dataset's name | SceneFlow |
5) Clean the project (if you want to clean generating files)
$ ./clean.sh
.
├── Source # source code
│ ├── JackFramework/
| | ├── Contrib/
| | ├── DatasetReader/
| | ├── Evalution/
| | ├── NN/
| | ├── Proc/
| | ├── SysBasic/
| | ├── UserTemplate/
| | ├── FileHandler/
│ | └── ...
│ ├── setup.py
│ └── ...
├── LICENSE
└── README.md
- rewirte the readme;
- code refacotoring for contrib;
- refactor the code;
- Add action for gitHub;
- Add some information for JackFramework;
- Write the ReadMe.
- Write ReadMe;
- Add setup.py;