From e86ed5e102c777351739204911787f7bd123f8b9 Mon Sep 17 00:00:00 2001 From: littletomatodonkey <2120160898@bit.edu.cn> Date: Thu, 11 Mar 2021 15:00:21 +0800 Subject: [PATCH] improve install and quick_start doc (#631) * improve doc, test=document_fix * improve doc, test=document_fix * fix doc * fix config, test=document_fix * add cpu note, test=document_fix * fix, test=document_fix --- .../MobileNetV3_large_x1_0_finetune.yaml | 1 + .../R50_vd_distill_MV3_large_x1_0.yaml | 1 + configs/quick_start/ResNet50_vd.yaml | 1 + configs/quick_start/ResNet50_vd_finetune.yaml | 1 + .../ResNet50_vd_ssld_finetune.yaml | 1 + ...Net50_vd_ssld_random_erasing_finetune.yaml | 1 + docs/en/tutorials/install_en.md | 20 +-- docs/en/tutorials/quick_start_en.md | 118 ++++++++++-------- .../quick_start/flowers102/image_06739.jpg | Bin 0 -> 35594 bytes .../quick_start/flowers102/image_06767.jpg | Bin 0 -> 34082 bytes .../quick_start/flowers102/image_06773.jpg | Bin 0 -> 53704 bytes docs/zh_CN/tutorials/install.md | 28 +++-- docs/zh_CN/tutorials/quick_start.md | 110 ++++++++-------- 13 files changed, 159 insertions(+), 123 deletions(-) create mode 100755 docs/images/quick_start/flowers102/image_06739.jpg create mode 100755 docs/images/quick_start/flowers102/image_06767.jpg create mode 100755 docs/images/quick_start/flowers102/image_06773.jpg diff --git a/configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml b/configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml index 411d71da..8ae68fec 100644 --- a/configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml +++ b/configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml @@ -3,6 +3,7 @@ ARCHITECTURE: name: 'MobileNetV3_large_x1_0' pretrained_model: "./pretrained/MobileNetV3_large_x1_0_pretrained" model_save_dir: "./output/" +use_gpu: True classes_num: 102 total_images: 1020 save_interval: 1 diff --git a/configs/quick_start/R50_vd_distill_MV3_large_x1_0.yaml b/configs/quick_start/R50_vd_distill_MV3_large_x1_0.yaml index 7ffbb7fc..eb9af9a4 100644 --- a/configs/quick_start/R50_vd_distill_MV3_large_x1_0.yaml +++ b/configs/quick_start/R50_vd_distill_MV3_large_x1_0.yaml @@ -6,6 +6,7 @@ pretrained_model: - "./pretrained/flowers102_R50_vd_final/ppcls" - "./pretrained/MobileNetV3_large_x1_0_pretrained" model_save_dir: "./output/" +use_gpu: True classes_num: 102 total_images: 7169 save_interval: 1 diff --git a/configs/quick_start/ResNet50_vd.yaml b/configs/quick_start/ResNet50_vd.yaml index 46e8d9bf..eaa90dac 100644 --- a/configs/quick_start/ResNet50_vd.yaml +++ b/configs/quick_start/ResNet50_vd.yaml @@ -4,6 +4,7 @@ ARCHITECTURE: checkpoints: "" pretrained_model: "" +use_gpu: True model_save_dir: "./output/" classes_num: 102 total_images: 1020 diff --git a/configs/quick_start/ResNet50_vd_finetune.yaml b/configs/quick_start/ResNet50_vd_finetune.yaml index c29959cf..63f97694 100644 --- a/configs/quick_start/ResNet50_vd_finetune.yaml +++ b/configs/quick_start/ResNet50_vd_finetune.yaml @@ -3,6 +3,7 @@ ARCHITECTURE: name: 'ResNet50_vd' pretrained_model: "./pretrained/ResNet50_vd_pretrained" model_save_dir: "./output/" +use_gpu: True classes_num: 102 total_images: 1020 save_interval: 1 diff --git a/configs/quick_start/ResNet50_vd_ssld_finetune.yaml b/configs/quick_start/ResNet50_vd_ssld_finetune.yaml index f83fb036..33cc8a14 100644 --- a/configs/quick_start/ResNet50_vd_ssld_finetune.yaml +++ b/configs/quick_start/ResNet50_vd_ssld_finetune.yaml @@ -5,6 +5,7 @@ ARCHITECTURE: lr_mult_list: [0.1, 0.1, 0.2, 0.2, 0.3] pretrained_model: "./pretrained/ResNet50_vd_ssld_pretrained" model_save_dir: "./output/" +use_gpu: True classes_num: 102 total_images: 1020 save_interval: 1 diff --git a/configs/quick_start/ResNet50_vd_ssld_random_erasing_finetune.yaml b/configs/quick_start/ResNet50_vd_ssld_random_erasing_finetune.yaml index f54a6806..6dfb9edc 100644 --- a/configs/quick_start/ResNet50_vd_ssld_random_erasing_finetune.yaml +++ b/configs/quick_start/ResNet50_vd_ssld_random_erasing_finetune.yaml @@ -5,6 +5,7 @@ ARCHITECTURE: lr_mult_list: [0.1, 0.1, 0.2, 0.2, 0.3] pretrained_model: "./pretrained/ResNet50_vd_ssld_pretrained" model_save_dir: "./output/" +use_gpu: True classes_num: 102 total_images: 1020 save_interval: 1 diff --git a/docs/en/tutorials/install_en.md b/docs/en/tutorials/install_en.md index 28e77f75..c2140ad0 100644 --- a/docs/en/tutorials/install_en.md +++ b/docs/en/tutorials/install_en.md @@ -16,13 +16,13 @@ Python 3.x, CUDA 10.0, CUDNN7.6.4 nccl2.1.2 and later version are required at fi If you want to use PaddlePaddle on GPU, you can use the following command to install PaddlePaddle. ```bash -pip install paddlepaddle-gpu==2.0.0 --upgrade +pip3 install paddlepaddle-gpu==2.0.0 --upgrade -i https://mirror.baidu.com/pypi/simple ``` If you want to use PaddlePaddle on CPU, you can use the following command to install PaddlePaddle. ```bash -pip install paddlepaddle==2.0.0 --upgrade +pip3 install paddlepaddle==2.0.0 --upgrade -i https://mirror.baidu.com/pypi/simple ``` ### Install PaddlePaddle from source code @@ -39,7 +39,7 @@ paddle.utils.run_check() Check PaddlePaddle version: ```bash -python -c "import paddle; print(paddle.__version__)" +python3 -c "import paddle; print(paddle.__version__)" ``` Note: @@ -53,21 +53,25 @@ Note: **Clone PaddleClas: ** ``` -cd path_to_clone_PaddleClas -git clone https://github.com/PaddlePaddle/PaddleClas.git +git clone https://github.com/PaddlePaddle/PaddleClas.git -b release/2.0 ``` -**Install requirements** +If it is too slow for you to download from github, you can download PaddleClas from gitee. The command is as follows. +```bash +git clone https://gitee.com/paddlepaddle/PaddleClas.git -b release/2.0 +``` + +**Install requirements** ``` -pip install --upgrade -r requirements.txt +pip3 install --upgrade -r requirements.txt -i https://mirror.baidu.com/pypi/simple ``` If the install process of visualdl failed, you can try the following commands. ``` -pip3 install --upgrade visualdl==2.0.0b3 -i https://mirror.baidu.com/pypi/simple +pip3 install --upgrade visualdl==2.1.1 -i https://mirror.baidu.com/pypi/simple ``` diff --git a/docs/en/tutorials/quick_start_en.md b/docs/en/tutorials/quick_start_en.md index 42c8fdfc..ad623498 100644 --- a/docs/en/tutorials/quick_start_en.md +++ b/docs/en/tutorials/quick_start_en.md @@ -1,38 +1,27 @@ # Trial in 30mins -Based on the flowers102 dataset, it takes only 30 mins to experience PaddleClas, include training varieties of backbone and pretrained model, SSLD distillation, and multiple data augmentation, Please refer to [Installation](install.md) to install at first. +Based on the flowers102 dataset, it takes only 30 mins to experience PaddleClas, include training varieties of backbone and pretrained model, SSLD distillation, and multiple data augmentation, Please refer to [Installation](install_en.md) to install at first. ## Preparation -* enter insatallation dir +* Enter insatallation dir. ``` cd path_to_PaddleClas ``` -* enter `dataset/flowers102`, download and decompress flowers102 dataset. +* Enter `dataset/flowers102`, download and decompress flowers102 dataset. ```shell cd dataset/flowers102 -wget https://www.robots.ox.ac.uk/~vgg/data/flowers/102/102flowers.tgz -wget https://www.robots.ox.ac.uk/~vgg/data/flowers/102/imagelabels.mat -wget https://www.robots.ox.ac.uk/~vgg/data/flowers/102/setid.mat -tar -xf 102flowers.tgz +# If you want to download from the brower, you can copy the link, visit it +# in the browser, download and then decommpress. +wget https://paddle-imagenet-models-name.bj.bcebos.com/data/flowers102.zip +unzip flowers102.zip ``` -* create train/val/test label files - -```shell -python generate_flowers102_list.py jpg train > train_list.txt -python generate_flowers102_list.py jpg valid > val_list.txt -python generate_flowers102_list.py jpg test > extra_list.txt -cat train_list.txt extra_list.txt > train_extra_list.txt -``` - -**Note:** In order to offer more data to SSLD training task, train_list.txt and extra_list.txt will merge into train_extra_list.txft - -* return `PaddleClas` dir +* Return `PaddleClas` dir ``` cd ../../ @@ -60,20 +49,39 @@ cd ../ ## Training * All experiments are running on the NVIDIA® Tesla® V100 single card. +* First of all, use the following command to set visible device. + +If you use mac or linux, you can use the following command: + +```shell +export CUDA_VISIBLE_DEVICES=0 +``` + +* If you use windows, you can use the following command. + +```shell +set CUDA_VISIBLE_DEVICES=0 +``` + +* If you want to train on cpu device, you can modify the field `use_gpu: True` in the config file to `use_gpu: False`, or you can append `-o use_gpu=False` in the training command, which means override the value of `use_gpu` as False. + ### Train from scratch * Train ResNet50_vd ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/ResNet50_vd.yaml +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd.yaml +``` + +If you want to train on cpu device, the command is as follows. +```shell +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd.yaml -o use_gpu=False ``` +Similarly, for the following commands, if you want to train on cpu device, you can append `-o use_gpu=False` in the command. + The validation `Top1 Acc` curve is shown below. ![](../../images/quick_start/r50_vd_acc.png) @@ -81,15 +89,10 @@ The validation `Top1 Acc` curve is shown below. ### Finetune - ResNet50_vd pretrained model (Acc 79.12\%) -* finetune ResNet50_vd_ model pretrained on the 1000-class Imagenet dataset +* Finetune ResNet50_vd model pretrained on the 1000-class Imagenet dataset ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/ResNet50_vd_finetune.yaml - +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd_finetune.yaml ``` The validation `Top1 Acc` curve is shown below @@ -99,6 +102,31 @@ The validation `Top1 Acc` curve is shown below Compare with training from scratch, it improve by 65\% to 94.02\% +You can use the trained model to infer the result of image `docs/images/quick_start/flowers102/image_06739.jpg`. The command is as follows. + + +```shell +python3 tools/infer/infer.py \ + -i docs/images/quick_start/flowers102/image_06739.jpg \ + --model=ResNet50_vd \ + --pretrained_model="output/ResNet50_vd/best_model/ppcls" \ + --class_num=102 +``` + +The output is as follows. Top-5 class ids and their scores are printed. + +``` +Current image file: docs/images/quick_start/flowers102/image_06739.jpg + top1, class id: 0, probability: 0.5129 + top2, class id: 50, probability: 0.0671 + top3, class id: 18, probability: 0.0377 + top4, class id: 82, probability: 0.0238 + top5, class id: 54, probability: 0.0231 +``` + +* Note: Results are different for different models, so you might get different results for the command. + + ### SSLD finetune - ResNet50_vd_ssld pretrained model (Acc 82.39\%) Note: when finetuning model, which has been trained by SSLD, please use smaller learning rate in the middle of net. @@ -114,14 +142,10 @@ pretrained_model: "./pretrained/ResNet50_vd_ssld_pretrained" Tringing script ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/ResNet50_vd_ssld_finetune.yaml +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd_ssld_finetune.yaml ``` -Compare with finetune on the 79.12% pretrained model, it improve by 0.9% to 95%. +Compare with finetune on the 79.12% pretrained model, it improve by 0.98\% to 95\%. ### More architecture - MobileNetV3 @@ -129,11 +153,7 @@ Compare with finetune on the 79.12% pretrained model, it improve by 0.9% to 95%. Training script ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml +python3 tools/train.py -c ./configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml ``` Compare with ResNet50_vd pretrained model, it decrease by 5% to 90%. Different architecture generates different performance, actually it is a task-oriented decision to apply the best performance model, should consider the inference time, storage, heterogeneous device, etc. @@ -146,11 +166,7 @@ Data augmentation works when training data is small. Training script ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/ResNet50_vd_ssld_random_erasing_finetune.yaml +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd_ssld_random_erasing_finetune.yaml ``` It improves by 1.27\% to 96.27\% @@ -183,11 +199,7 @@ TRAIN: Final training script ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/R50_vd_distill_MV3_large_x1_0.yaml +python3 tools/train.py -c ./configs/quick_start/R50_vd_distill_MV3_large_x1_0.yaml ``` It significantly imporve by 6.47% to 96.47% with more unlabeled data and teacher model. @@ -214,4 +226,4 @@ The whole accuracy curves are shown below * **NOTE**: As flowers102 is a small dataset, validatation accuracy maybe float 1%. -* Please refer to [Getting_started](./getting_started) for more details +* Please refer to [Getting_started](./getting_started_en.md) for more details diff --git a/docs/images/quick_start/flowers102/image_06739.jpg b/docs/images/quick_start/flowers102/image_06739.jpg new file mode 100755 index 0000000000000000000000000000000000000000..19a1ed6a445a25085db07795c2ebad08074602a7 GIT binary patch literal 35594 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 HU&j6c>k4F) literal 0 HcmV?d00001 diff --git a/docs/images/quick_start/flowers102/image_06767.jpg b/docs/images/quick_start/flowers102/image_06767.jpg new file mode 100755 index 0000000000000000000000000000000000000000..28fd2dbf77659db5d27fd3f6c4b4f2f272b44c22 GIT binary patch literal 34082 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�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 k=%RoVxu literal 0 HcmV?d00001 diff --git a/docs/zh_CN/tutorials/install.md b/docs/zh_CN/tutorials/install.md index a26d7bef..c11ae302 100644 --- a/docs/zh_CN/tutorials/install.md +++ b/docs/zh_CN/tutorials/install.md @@ -16,13 +16,13 @@ 如果已经安装好了cuda、cudnn、nccl或者安装好了docker、nvidia-docker运行环境,可以pip安装最新GPU版本PaddlePaddle ```bash -pip install paddlepaddle-gpu==2.0.0 --upgrade +pip3 install paddlepaddle-gpu==2.0.0 --upgrade -i https://mirror.baidu.com/pypi/simple ``` 如果希望在CPU环境中使用PaddlePaddle,可以运行下面的命令安装PaddlePaddle。 ```bash -pip install paddlepaddle==2.0.0 --upgrade +pip3 install paddlepaddle==2.0.0 --upgrade -i https://mirror.baidu.com/pypi/simple ``` ### 源码编译PaddlePaddle @@ -40,7 +40,7 @@ paddle.utils.run_check() 查看PaddlePaddle版本的命令如下: ```bash -python -c "import paddle; print(paddle.__version__)" +python3 -c "import paddle; print(paddle.__version__)" ``` 注意: @@ -60,24 +60,30 @@ python -c "import paddle; print(paddle.__version__)" **克隆PaddleClas模型库:** +```bash +git clone https://github.com/PaddlePaddle/PaddleClas.git -b release/2.0 ``` -cd path_to_clone_PaddleClas -git clone https://github.com/PaddlePaddle/PaddleClas.git + +如果从github上网速太慢,可以从gitee下载,下载命令如下: + +```bash +git clone https://gitee.com/paddlepaddle/PaddleClas.git -b release/2.0 ``` + + **安装Python依赖库:** -Python依赖库在[requirements.txt](https://github.com/PaddlePaddle/PaddleClas/blob/master/requirements.txt)中给出,可通过如下命令安装: +Python依赖库在`requirements.txt`中给出,可通过如下命令安装: -``` -pip install --upgrade -r requirements.txt +```bash +pip3 install --upgrade -r requirements.txt -i https://mirror.baidu.com/pypi/simple ``` visualdl可能出现安装失败,请尝试 -``` -pip3 install --upgrade visualdl==2.0.0b3 -i https://mirror.baidu.com/pypi/simple - +```bash +pip3 install --upgrade visualdl==2.1.1 -i https://mirror.baidu.com/pypi/simple ``` 此外,visualdl目前只支持在python3下运行,因此如果希望使用visualdl,需要使用python3。 diff --git a/docs/zh_CN/tutorials/quick_start.md b/docs/zh_CN/tutorials/quick_start.md index 09c35a9d..0162303b 100644 --- a/docs/zh_CN/tutorials/quick_start.md +++ b/docs/zh_CN/tutorials/quick_start.md @@ -11,27 +11,16 @@ cd path_to_PaddleClas ``` -* 进入`dataset/flowers102`目录,下载并解压flowers102数据集. +* 进入`dataset/flowers102`目录,下载并解压flowers102数据集。 -```shell -cd dataset/flowers102 -wget https://www.robots.ox.ac.uk/~vgg/data/flowers/102/102flowers.tgz -wget https://www.robots.ox.ac.uk/~vgg/data/flowers/102/imagelabels.mat -wget https://www.robots.ox.ac.uk/~vgg/data/flowers/102/setid.mat -tar -xf 102flowers.tgz -``` - -* 制作train/val/test标签文件 ```shell -python generate_flowers102_list.py jpg train > train_list.txt -python generate_flowers102_list.py jpg valid > val_list.txt -python generate_flowers102_list.py jpg test > extra_list.txt -cat train_list.txt extra_list.txt > train_extra_list.txt +cd dataset/flowers102 +# 如果希望从浏览器中直接下载,可以复制该链接并访问,然后下载解压即可 +wget https://paddle-imagenet-models-name.bj.bcebos.com/data/flowers102.zip +unzip flowers102.zip ``` -**注意**:这里将train_list.txt和extra_list.txt合并成train_extra_list.txt,是为了之后在进行知识蒸馏时,使用更多的数据提升无标签知识蒸馏任务的效果。 - * 返回`PaddleClas`根目录 ``` @@ -50,7 +39,6 @@ cd pretrained wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_pretrained.pdparams wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_ssld_pretrained.pdparams wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/MobileNetV3_large_x1_0_pretrained.pdparams - cd ../ ``` @@ -58,8 +46,21 @@ cd ../ ### 2.2 环境说明 -* 下面所有的训练过程均在`单卡V100`机器上运行。 +* 下面所有的训练过程均在`单卡V100`机器上运行。首先需要设置可用的显卡设备id。 + +如果使用mac或者linux,可以使用下面的命令进行设置。 + +```shell +export CUDA_VISIBLE_DEVICES=0 +``` + +如果使用windows,可以使用下面的命令进行设置。 + +```shell +set CUDA_VISIBLE_DEVICES=0 +``` +* 如果希望在cpu上训练,可以将配置文件中的`use_gpu: True`修改为`use_gpu: False`,或者在训练脚本后面添加`-o use_gpu=False`,表示传入参数,覆盖默认的`use_gpu`值。 ## 三、模型训练 @@ -68,14 +69,18 @@ cd ../ * 基于ResNet50_vd模型,训练脚本如下所示。 ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/ResNet50_vd.yaml +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd.yaml +``` +如果希望在cpu上训练,训练脚本如下所示。 + +```shell +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd.yaml -o use_gpu=False ``` +下面的训练任务中,如果希望使用cpu训练,也可以在训练脚本中添加`-o use_gpu=False`。 + + 验证集的`Top1 Acc`曲线如下所示,最高准确率为0.2735。 ![](../../images/quick_start/r50_vd_acc.png) @@ -86,21 +91,39 @@ python -m paddle.distributed.launch \ * 基于ImageNet1k分类预训练模型进行微调,训练脚本如下所示。 ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/ResNet50_vd_finetune.yaml - +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd_finetune.yaml ``` 验证集的`Top1 Acc`曲线如下所示,最高准确率为0.9402,加载预训练模型之后,flowers102数据集精度大幅提升,绝对精度涨幅超过65\%。 ![](../../images/quick_start/r50_vd_pretrained_acc.png) -### 3.3 SSLD模型微调-基于ResNet50_vd_ssld预训练模型(准确率82.39\%) +使用训练完的预训练模型对图片`docs/images/quick_start/flowers102/image_06739.jpg`进行预测,预测命令为 + +```shell +python3 tools/infer/infer.py \ + -i docs/images/quick_start/flowers102/image_06739.jpg \ + --model=ResNet50_vd \ + --pretrained_model="output/ResNet50_vd/best_model/ppcls" \ + --class_num=102 +``` + +最终可以得到如下结果,打印出了Top-5对应的class id以及score。 + +``` +Current image file: docs/images/quick_start/flowers102/image_06739.jpg + top1, class id: 0, probability: 0.5129 + top2, class id: 50, probability: 0.0671 + top3, class id: 18, probability: 0.0377 + top4, class id: 82, probability: 0.0238 + top5, class id: 54, probability: 0.0231 +``` + +* 注意:这里每个模型的训练结果都不相同,因此结果可能稍有不同。 +### 3.3 SSLD模型微调-基于ResNet50_vd_ssld预训练模型(准确率82.39\%) + 需要注意的是,在使用通过知识蒸馏得到的预训练模型进行微调时,我们推荐使用相对较小的网络中间层学习率。 @@ -113,15 +136,12 @@ pretrained_model: "./pretrained/ResNet50_vd_ssld_pretrained" ``` 训练脚本如下。 + ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/ResNet50_vd_ssld_finetune.yaml +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd_ssld_finetune.yaml ``` -最终flowers102验证集上精度指标为0.95,相对于79.12\%预训练模型的微调结构,新数据集指标可以再次提升0.9\%。 +最终flowers102验证集上精度指标为0.95,相对于79.12\%预训练模型的微调结构,新数据集指标可以再次提升0.98\%。 ### 3.4 尝试更多的模型结构-MobileNetV3 @@ -129,11 +149,7 @@ python -m paddle.distributed.launch \ 训练脚本如下所示。 ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml +python3 tools/train.py -c ./configs/quick_start/MobileNetV3_large_x1_0_finetune.yaml ``` 最终flowers102验证集上的精度为0.90,比加载了预训练模型的ResNet50_vd的精度差了5\%。不同模型结构的网络在相同数据集上的性能表现不同,需要根据预测耗时以及存储的需求选择合适的模型。 @@ -145,11 +161,7 @@ python -m paddle.distributed.launch \ ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/ResNet50_vd_ssld_random_erasing_finetune.yaml +python3 tools/train.py -c ./configs/quick_start/ResNet50_vd_ssld_random_erasing_finetune.yaml ``` 最终flowers102验证集上的精度为0.9627,使用数据增广可以使得模型精度再次提升1.27\%。 @@ -184,11 +196,7 @@ TRAIN: 最终的训练脚本如下所示。 ```shell -export CUDA_VISIBLE_DEVICES=0 -python -m paddle.distributed.launch \ -    --gpus="0" \ -    tools/train.py \ -        -c ./configs/quick_start/R50_vd_distill_MV3_large_x1_0.yaml +python3 tools/train.py -c ./configs/quick_start/R50_vd_distill_MV3_large_x1_0.yaml ``` 最终flowers102验证集上的精度为0.9647,结合更多的无标签数据,使用教师模型进行知识蒸馏,MobileNetV3的精度涨幅高达6.47\%。 -- GitLab