Reconstruct the directory structure

This commit is contained in:
darkliang
2022-04-12 13:44:07 +08:00
parent 213b3a658f
commit 28f50410a5
32 changed files with 162 additions and 45 deletions
@@ -1,7 +1,7 @@
data_cfg: data_cfg:
dataset_name: CASIA-B dataset_name: CASIA-B
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/partitions/CASIA-B_include_005.json dataset_partition: ./datasets/CASIA-B/CASIA-B_include_005.json
num_workers: 1 num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: CASIA-B test_dataset_name: CASIA-B
@@ -1,7 +1,7 @@
data_cfg: data_cfg:
dataset_name: GREW dataset_name: GREW
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/partitions/GREW.json dataset_partition: ./datasets/GREW/GREW.json
num_workers: 16 num_workers: 16
remove_no_gallery: false # Remove probe if no gallery for it remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: GREW test_dataset_name: GREW
@@ -1,7 +1,7 @@
data_cfg: data_cfg:
dataset_name: OUMVLP dataset_name: OUMVLP
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/partitions/OUMVLP.json dataset_partition: ./datasets/OUMVLP/OUMVLP.json
num_workers: 1 num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it remove_no_gallery: false # Remove probe if no gallery for it
test_dataset_name: OUMVLP test_dataset_name: OUMVLP
@@ -1,7 +1,7 @@
data_cfg: data_cfg:
dataset_name: HID dataset_name: HID
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/HID/HID.json dataset_partition: ./datasets/HID/HID.json
num_workers: 1 num_workers: 1
remove_no_gallery: false # Remove probe if no gallery for it remove_no_gallery: false # Remove probe if no gallery for it
evaluator_cfg: evaluator_cfg:
+1 -1
View File
@@ -2,7 +2,7 @@ data_cfg:
dataset_name: CASIA-B dataset_name: CASIA-B
dataset_root: your_path dataset_root: your_path
num_workers: 1 num_workers: 1
dataset_partition: ./misc/partitions/CASIA-B.json dataset_partition: ./datasets/CASIA-B/CASIA-B.json
remove_no_gallery: false remove_no_gallery: false
cache: false cache: false
test_dataset_name: CASIA-B test_dataset_name: CASIA-B
@@ -2,7 +2,7 @@
data_cfg: data_cfg:
dataset_name: CASIA-B dataset_name: CASIA-B
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/partitions/CASIA-B_include_005.json dataset_partition: ./datasets/CASIA-B/CASIA-B_include_005.json
num_workers: 1 num_workers: 1
remove_no_gallery: false remove_no_gallery: false
test_dataset_name: CASIA-B test_dataset_name: CASIA-B
@@ -2,7 +2,7 @@
data_cfg: data_cfg:
dataset_name: OUMVLP dataset_name: OUMVLP
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/partitions/OUMVLP.json dataset_partition: ./datasets/OUMVLP/OUMVLP.json
num_workers: 1 num_workers: 1
remove_no_gallery: false remove_no_gallery: false
test_dataset_name: OUMVLP test_dataset_name: OUMVLP
@@ -1,7 +1,7 @@
data_cfg: data_cfg:
dataset_name: OUMVLP dataset_name: OUMVLP
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/partitions/OUMVLP.json dataset_partition: ./datasets/OUMVLP/OUMVLP.json
num_workers: 4 num_workers: 4
remove_no_gallery: false remove_no_gallery: false
test_dataset_name: OUMVLP test_dataset_name: OUMVLP
@@ -1,7 +1,7 @@
data_cfg: data_cfg:
dataset_name: OUMVLP dataset_name: OUMVLP
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/partitions/OUMVLP.json dataset_partition: ./datasets/OUMVLP/OUMVLP.json
num_workers: 4 num_workers: 4
remove_no_gallery: false remove_no_gallery: false
test_dataset_name: OUMVLP test_dataset_name: OUMVLP
+1 -1
View File
@@ -1,7 +1,7 @@
data_cfg: data_cfg:
dataset_name: CASIA-B dataset_name: CASIA-B
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/partitions/CASIA-B_include_005.json dataset_partition: ./datasets/CASIA-B/CASIA-B_include_005.json
num_workers: 1 num_workers: 1
cache: false cache: false
remove_no_gallery: false remove_no_gallery: false
+1 -1
View File
@@ -1,7 +1,7 @@
data_cfg: data_cfg:
dataset_name: CASIA-B dataset_name: CASIA-B
dataset_root: your_path dataset_root: your_path
dataset_partition: ./misc/partitions/CASIA-B_include_005.json dataset_partition: ./datasets/CASIA-B/CASIA-B_include_005.json
num_workers: 1 num_workers: 1
remove_no_gallery: false remove_no_gallery: false
test_dataset_name: CASIA-B test_dataset_name: CASIA-B
+27
View File
@@ -0,0 +1,27 @@
# CASIA-B
Download URL: http://www.cbsr.ia.ac.cn/GaitDatasetB-silh.zip
- Original
```
CASIA-B
001 (subject)
bg-01 (type)
000 (view)
001-bg-01-000-001.png (frame)
001-bg-01-000-002.png (frame)
......
......
......
......
```
- Run `python misc/pretreatment.py --input_path CASIA-B --output_path CASIA-B-pkl`
- Processed
```
CASIA-B-pkl
001 (subject)
bg-01 (type)
000 (view)
000.pkl (contains all frames)
......
......
......
```
@@ -26,12 +26,12 @@ After unpacking these compressed files, run this command:
Step2 : To rearrange directory of GREW dataset, turning to id-type-view structure, Run Step2 : To rearrange directory of GREW dataset, turning to id-type-view structure, Run
``` ```
python misc/rearrange_GREW.py --input_path Path_of_GREW-raw --output_path Path_of_GREW-rearranged python datasets/GREW/rearrange_GREW.py --input_path Path_of_GREW-raw --output_path Path_of_GREW-rearranged
``` ```
Step3: Transforming images to pickle file, run Step3: Transforming images to pickle file, run
``` ```
python misc/pretreatment.py --input_path Path_of_GREW-rearranged --output_path Path_of_GREW-pkl python datasets/pretreatment.py --input_path Path_of_GREW-rearranged --output_path Path_of_GREW-pkl
``` ```
Then you will see the structure like: Then you will see the structure like:
@@ -62,17 +62,16 @@ Then you will see the structure like:
``` ```
## Train the dataset ## Train the dataset
Modify the `dataset_root` in `./config/baseline_GREW.yaml`, and then run this command: Modify the `dataset_root` in `./config/baseline/baseline_GREW.yaml`, and then run this command:
```shell ```shell
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 opengait/main.py --cfgs ./config/baseline_GREW.yaml --phase train CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 opengait/main.py --cfgs ./config/baseline/baseline_GREW.yaml --phase train
``` ```
<!-- You can also download the [trained model](https://github.com/ShiqiYu/OpenGait/releases/download/v1.1/pretrained_hid_model.zip) and place it in `output` after unzipping. -->
## Get the submission file ## Get the submission file
```shell ```shell
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 opengait/main.py --cfgs ./config/baseline_GREW.yaml --phase test CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 opengait/main.py --cfgs ./config/baseline/baseline_GREW.yaml --phase test
``` ```
The result will be generated in your working directory, you must rename and compress it as the requirements before submitting. The result will be generated in your working directory, you must rename and compress it as the requirements before submitting.
## Evaluation locally ## Evaluation locally
While the original grew treat both seq_01 and seq_02 as gallery, but there is no ground truth for probe. Therefore, it is nessesary to upload the submission file on grew competitation. We seperate test set to: seq_01 as gallery, seq_02 as probe. Then you can modify `eval_func` in the `./config/baseline_GREW.yaml` to `identification_real_scene`, you can obtain result localy like setting of OUMVLP. While the original grew treat both seq_01 and seq_02 as gallery, but there is no ground truth for probe. Therefore, it is nessesary to upload the submission file on grew competitation. We seperate test set to: seq_01 as gallery, seq_02 as probe. Then you can modify `eval_func` in the `./config/baseline/baseline_GREW.yaml` to `identification_real_scene`, you can obtain result localy like setting of OUMVLP.
+67
View File
@@ -0,0 +1,67 @@
# OUMVLP
Step1: Download URL: http://www.am.sanken.osaka-u.ac.jp/BiometricDB/GaitMVLP.html
Step2: Unzip the dataset, you will get a structure directory like:
```
python datasets/OUMVLP/extractor.py --input_path Path_of_OUMVLP-base --output_path Path_of_OUMVLP-raw --password Given_Password
```
- Original
```
OUMVLP-raw
Silhouette_000-00 (view-sequence)
00001 (subject)
0001.png (frame)
0002.png (frame)
......
00002
0001.png (frame)
0002.png (frame)
......
......
Silhouette_000-01
00001
0001.png (frame)
0002.png (frame)
......
00002
0001.png (frame)
0002.png (frame)
......
......
Silhouette_015-00
......
Silhouette_015-01
......
......
```
Step3 : To rearrange directory of OUMVLP dataset, turning to id-type-view structure, Run
```
python datasets/OUMVLP/rearrange_OUMVLP.py --input_path Path_of_OUMVLP-raw --output_path Path_of_OUMVLP-rearranged
```
Step4: Transforming images to pickle file, run
```
python datasets/pretreatment.py --input_path Path_of_OUMVLP-rearranged --output_path Path_of_OUMVLP-pkl
```
- Processed
```
OUMVLP-pkl
00001 (subject)
00 (sequence)
000 (view)
000.pkl (contains all frames)
015 (view)
015.pkl (contains all frames)
...
01 (sequence)
000 (view)
000.pkl (contains all frames)
015 (view)
015.pkl (contains all frames)
......
00002 (subject)
......
......
```
+24
View File
@@ -0,0 +1,24 @@
# Datasets
OpenGait officially supports a few gait datasets. In order to use them, you need to download them and use the code provided here to pre-process them to the format required by OpenGait.
## Pre-process
In general, we read the original image provided by the dataset and save a sequence as a pickle file to speed up the training IO.
The expected dataset structure is as follows:
```
DATASET_ROOT/
001 (subject)/
bg-01 (type)/
000 (view)/
000.pkl (contains all frames)
......
......
......
```
The specific preprocessing steps are described inside each dataset folder.
## Split dataset
For each dataset, we split the dataset into training and testing sets. The training set is used to train the model, and the testing set is used to evaluate the model.
You can use the partition file in [dataset folder](CASIA-B/CASIA-B.json) directly, or you can create yours. Remember to set your path to the partition file in [config/*.yaml](../config/).
+7 -7
View File
@@ -18,7 +18,7 @@ Download URL: http://www.cbsr.ia.ac.cn/GaitDatasetB-silh.zip
...... ......
...... ......
``` ```
- Run `python misc/pretreatment.py --input_path CASIA-B --output_path CASIA-B-pkl` - Run `python datasets/pretreatment.py --input_path CASIA-B --output_path CASIA-B-pkl`
- Processed - Processed
``` ```
CASIA-B-pkl CASIA-B-pkl
@@ -36,7 +36,7 @@ Step1: Download URL: http://www.am.sanken.osaka-u.ac.jp/BiometricDB/GaitMVLP.htm
Step2: Unzip the dataset, you will get a structure directory like: Step2: Unzip the dataset, you will get a structure directory like:
``` ```
python misc/extractor.py --input_path Path_of_OUMVLP-base --output_path Path_of_OUMVLP-raw --password Given_Password python datasets/OUMVLP/extractor.py --input_path Path_of_OUMVLP-base --output_path Path_of_OUMVLP-raw --password Given_Password
``` ```
- Original - Original
@@ -70,12 +70,12 @@ python misc/extractor.py --input_path Path_of_OUMVLP-base --output_path Path_of_
``` ```
Step3 : To rearrange directory of OUMVLP dataset, turning to id-type-view structure, Run Step3 : To rearrange directory of OUMVLP dataset, turning to id-type-view structure, Run
``` ```
python misc/rearrange_OUMVLP.py --input_path Path_of_OUMVLP-raw --output_path Path_of_OUMVLP-rearranged python datasets/OUMVLP/rearrange_OUMVLP.py --input_path Path_of_OUMVLP-raw --output_path Path_of_OUMVLP-rearranged
``` ```
Step4: Transforming images to pickle file, run Step4: Transforming images to pickle file, run
``` ```
python misc/pretreatment.py --input_path Path_of_OUMVLP-rearranged --output_path Path_of_OUMVLP-pkl python datasets/pretreatment.py --input_path Path_of_OUMVLP-rearranged --output_path Path_of_OUMVLP-pkl
``` ```
- Processed - Processed
@@ -135,12 +135,12 @@ Step2: [Unzip](https://github.com/GREW-Benchmark/GREW-Benchmark) the dataset, yo
Step3 : To rearrange directory of GREW dataset, turning to id-type-view structure, Run Step3 : To rearrange directory of GREW dataset, turning to id-type-view structure, Run
``` ```
python misc/rearrange_GREW.py --input_path Path_of_GREW-raw --output_path Path_of_GREW-rearranged python datasets/GREW/rearrange_GREW.py --input_path Path_of_GREW-raw --output_path Path_of_GREW-rearranged
``` ```
Step4: Transforming images to pickle file, run Step4: Transforming images to pickle file, run
``` ```
python misc/pretreatment.py --input_path Path_of_GREW-rearranged --output_path Path_of_GREW-pkl python datasets/pretreatment.py --input_path Path_of_GREW-rearranged --output_path Path_of_GREW-pkl
``` ```
- Processed - Processed
@@ -170,4 +170,4 @@ python misc/pretreatment.py --input_path Path_of_GREW-rearranged --output_path P
``` ```
## Split dataset ## Split dataset
You can use the partition file in [misc/partitions](misc/partitions/) directly, or you can create yours. Remember to set your path to the partition file in [config/*.yaml](config/). You can use the partition file in dataset folder directly, or you can create yours. Remember to set your path to the partition file in [config/*.yaml](config/).
+4 -4
View File
@@ -1,13 +1,13 @@
# Advanced Usages # Advanced Usages
### Cross-Dataset Evalution ### Cross-Dataset Evalution
> You can conduct cross-dataset evalution by just modifying several arguments in your [data_cfg](../config/baseline.yaml#L1). > You can conduct cross-dataset evalution by just modifying several arguments in your [data_cfg](../config/baseline/baseline.yaml#L1).
> >
> Take [baseline.yaml](../config/baseline.yaml) as an example: > Take [baseline.yaml](../config/baseline/baseline.yaml) as an example:
> ```yaml > ```yaml
> data_cfg: > data_cfg:
> dataset_name: CASIA-B > dataset_name: CASIA-B
> dataset_root: your_path > dataset_root: your_path
> dataset_partition: ./misc/partitions/CASIA-B_include_005.json > dataset_partition: ./datasets/CASIA-B/CASIA-B_include_005.json
> num_workers: 1 > num_workers: 1
> remove_no_gallery: false # Remove probe if no gallery for it > remove_no_gallery: false # Remove probe if no gallery for it
> test_dataset_name: CASIA-B > test_dataset_name: CASIA-B
@@ -19,7 +19,7 @@
> data_cfg: > data_cfg:
> dataset_name: CASIA-B > dataset_name: CASIA-B
> dataset_root: your_OUMVLP_path > dataset_root: your_OUMVLP_path
> dataset_partition: ./misc/partitions/OUMVLP.json > dataset_partition: ./datasets/OUMVLP/OUMVLP.json
> num_workers: 1 > num_workers: 1
> remove_no_gallery: false # Remove probe if no gallery for it > remove_no_gallery: false # Remove probe if no gallery for it
> test_dataset_name: OUMVLP > test_dataset_name: OUMVLP
+8 -8
View File
@@ -1,15 +1,15 @@
# # **************** For CASIA-B **************** # # **************** For CASIA-B ****************
# # Baseline # # Baseline
CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/baseline.yaml --phase test CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/baseline/baseline.yaml --phase test
# # GaitSet # # GaitSet
# CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/gaitset.yaml --phase test # CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/gaitset/gaitset.yaml --phase test
# # GaitPart # # GaitPart
# CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/gaitpart.yaml --phase test # CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/gaitpart/gaitpart.yaml --phase test
# GaitGL # GaitGL
# CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --master_port 12345 --nproc_per_node=4 opengait/main.py --cfgs ./config/gaitgl.yaml --phase test # CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --master_port 12345 --nproc_per_node=4 opengait/main.py --cfgs ./config/gaitgl/gaitgl.yaml --phase test
# # GLN # # GLN
# # Phase 1 # # Phase 1
@@ -20,13 +20,13 @@ CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 o
# # **************** For OUMVLP **************** # # **************** For OUMVLP ****************
# # Baseline # # Baseline
# CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/baseline_OUMVLP.yaml --phase test # CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/baseline/baseline_OUMVLP.yaml --phase test
# # GaitSet # # GaitSet
# CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitset_OUMVLP.yaml --phase test # CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitset/gaitset_OUMVLP.yaml --phase test
# # GaitPart # # GaitPart
# CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitpart_OUMVLP.yaml --phase test # CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitpart/gaitpart_OUMVLP.yaml --phase test
# GaitGL # GaitGL
# CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitgl_OUMVLP.yaml --phase test # CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitgl/gaitgl_OUMVLP.yaml --phase test
+8 -8
View File
@@ -1,15 +1,15 @@
# # **************** For CASIA-B **************** # # **************** For CASIA-B ****************
# # Baseline # # Baseline
CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/baseline.yaml --phase train CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/baseline/baseline.yaml --phase train
# # GaitSet # # GaitSet
# CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/gaitset.yaml --phase train # CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/gaitset/gaitset.yaml --phase train
# # GaitPart # # GaitPart
# CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/gaitpart.yaml --phase train # CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 opengait/main.py --cfgs ./config/gaitpart/gaitpart.yaml --phase train
# GaitGL # GaitGL
# CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 opengait/main.py --cfgs ./config/gaitgl.yaml --phase train # CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 opengait/main.py --cfgs ./config/gaitgl/gaitgl.yaml --phase train
# # GLN # # GLN
# # Phase 1 # # Phase 1
@@ -20,13 +20,13 @@ CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 o
# # **************** For OUMVLP **************** # # **************** For OUMVLP ****************
# # Baseline # # Baseline
# CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/baseline_OUMVLP.yaml --phase train # CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/baseline/baseline_OUMVLP.yaml --phase train
# # GaitSet # # GaitSet
# CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitset_OUMVLP.yaml --phase train # CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitset/gaitset_OUMVLP.yaml --phase train
# # GaitPart # # GaitPart
# CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitpart_OUMVLP.yaml --phase train # CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitpart/gaitpart_OUMVLP.yaml --phase train
# GaitGL # GaitGL
# CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitgl_OUMVLP.yaml --phase train # CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 opengait/main.py --cfgs ./config/gaitgl/gaitgl_OUMVLP.yaml --phase train