We provide some demo tasks under the folder task. Here, we introduce how to experiment based on PixelSSL.
The given task codes follow the task template provided by PixelSSL. Therefore, they are compatible with all integrated semi-supervised learning algorithms. We hope that these task codes can help users to validate their new semi-supervised algorithms and compare their algorithms with existing works.
In the following context, we refer to the task folder as task/xxx, where xxx is the unique name of the task. For example, the folder of semantic segmentation is named task/sseg.
Currently supported tasks are [semantic segmentation, ].
To run an experiment (assuming you are currently at the root path of the project):
-
Switch to the root path of the task and install task-specific python dependencies:
cd task/xxx pip install -r requirements.txt -
Prepare the datasets according to the
Data Preparationsection in the filetask/xxx/README.md. -
If you want to validate the pretrained models provided by us, please download them according to the
Pretrained Modelssection in the filetask/xxx/README.mdand put them in the foldertask/xxx/pretrained. Then you can run:python -m script.[name_of_the_script]NOTE: The naming rule of the scripts and the pretrained models is
[model architecture]_[dataset]_[labels ratio]_[SSL algorithm]. -
If you want to retrain the model, please comment the following two lines on the script as:
# 'resume' : 'pretrained/[name_of_the_pretrained_model]', # 'validation': True,Then you can run:
python -m script.[name_of_the_script]You can also specify the used Nvidia GPUs by adding
CUDA_VISIBLE_DEVICES=gpus-idbefore thepythoncommand, e.g., using the first 4 GPUs for training:CUDA_VISIBLE_DEVICES=0,1,2,3 python -m script.[name_of_the_script]NOTE: Please refer to the file
task/xxx/README.mdto set the optimal number of Nvidia GPUs for different tasks. -
To check the help information for the arguments related to the current script, please run:
python -m script.[name_of_the_script] --help -
After starting the experiment, the folder
./task/xxx/result/name_of_the_script/yyyy-mm-dd_hh:mm:sswill save all output files related to this run. The structure of the output folder is:task/xxx # task folder ├── result # output folder indicated in the script │ ├── name_of_the_script # result folder of a specific script │ │ ├── yyyy-mm-dd_hh:mm:ss # each run is named by its start time │ │ │ ├── train/val.log # training or validating log │ │ │ ├── ckpt # folder used to save checkpoints │ │ │ ├── visualization # folder used to save images for visualization │ │ │ │ ├── debug # folder used to save debugging images │ │ │ │ ├── train # folder used to save training images │ │ │ │ ├── val # folder used to save validating images