forked from mindspore-Ecosystem/mindspore
!9145 Remove redundant parameters in Maskrcnn config.py
From: @gengdongjie Reviewed-by: Signed-off-by:
This commit is contained in:
commit
689f102f86
|
@ -25,11 +25,13 @@
|
||||||
- [ModelZoo Homepage](#modelzoo-homepage)
|
- [ModelZoo Homepage](#modelzoo-homepage)
|
||||||
|
|
||||||
# [MaskRCNN Description](#contents)
|
# [MaskRCNN Description](#contents)
|
||||||
|
|
||||||
MaskRCNN is a conceptually simple, flexible, and general framework for object instance segmentation. The approach efficiently detects objects in an image while simultaneously generating a high-quality segmentation mask for each instance. The method, called Mask R-CNN, extends Faster R-CNN by adding a branch for predicting an object mask in
|
MaskRCNN is a conceptually simple, flexible, and general framework for object instance segmentation. The approach efficiently detects objects in an image while simultaneously generating a high-quality segmentation mask for each instance. The method, called Mask R-CNN, extends Faster R-CNN by adding a branch for predicting an object mask in
|
||||||
parallel with the existing branch for bounding box recognition. Mask R-CNN is simple to train and adds only a small overhead to Faster R-CNN, running at 5 fps. Moreover, Mask R-CNN is easy to generalize to other tasks, e.g., allowing to estimate human poses in the same framework.
|
parallel with the existing branch for bounding box recognition. Mask R-CNN is simple to train and adds only a small overhead to Faster R-CNN, running at 5 fps. Moreover, Mask R-CNN is easy to generalize to other tasks, e.g., allowing to estimate human poses in the same framework.
|
||||||
It shows top results in all three tracks of the COCO suite of challenges, including instance segmentation, boundingbox object detection, and person keypoint detection. Without bells and whistles, Mask R-CNN outperforms all existing, single-model entries on every task, including the COCO 2016 challenge winners.
|
It shows top results in all three tracks of the COCO suite of challenges, including instance segmentation, boundingbox object detection, and person keypoint detection. Without bells and whistles, Mask R-CNN outperforms all existing, single-model entries on every task, including the COCO 2016 challenge winners.
|
||||||
|
|
||||||
# [Model Architecture](#contents)
|
# [Model Architecture](#contents)
|
||||||
|
|
||||||
MaskRCNN is a two-stage target detection network. It extends FasterRCNN by adding a branch for predicting an object mask in parallel with the existing branch for bounding box recognition.This network uses a region proposal network (RPN), which can share the convolution features of the whole image with the detection network, so that the calculation of region proposal is almost cost free. The whole network further combines RPN and mask branch into a network by sharing the convolution features.
|
MaskRCNN is a two-stage target detection network. It extends FasterRCNN by adding a branch for predicting an object mask in parallel with the existing branch for bounding box recognition.This network uses a region proposal network (RPN), which can share the convolution features of the whole image with the detection network, so that the calculation of region proposal is almost cost free. The whole network further combines RPN and mask branch into a network by sharing the convolution features.
|
||||||
|
|
||||||
[Paper](http://cn.arxiv.org/pdf/1703.06870v3): Kaiming He, Georgia Gkioxari, Piotr Dollar and Ross Girshick. "MaskRCNN"
|
[Paper](http://cn.arxiv.org/pdf/1703.06870v3): Kaiming He, Georgia Gkioxari, Piotr Dollar and Ross Girshick. "MaskRCNN"
|
||||||
|
@ -45,8 +47,7 @@ Note that you can run the scripts based on the dataset mentioned in original pap
|
||||||
- Val: 1G, 5000 images
|
- Val: 1G, 5000 images
|
||||||
- Annotations: 241M, instances, captions, person_keypoints, etc.
|
- Annotations: 241M, instances, captions, person_keypoints, etc.
|
||||||
|
|
||||||
- Data format: image and json files
|
- Data format: image and json files (Note: Data will be processed in dataset.py)
|
||||||
- Note: Data will be processed in dataset.py
|
|
||||||
|
|
||||||
# [Environment Requirements](#contents)
|
# [Environment Requirements](#contents)
|
||||||
|
|
||||||
|
@ -66,12 +67,12 @@ pip install pycocotools
|
||||||
pip install mmcv=0.2.14
|
pip install mmcv=0.2.14
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
# [Quick Start](#contents)
|
# [Quick Start](#contents)
|
||||||
|
|
||||||
1. Download the dataset COCO2017.
|
1. Download the dataset COCO2017.
|
||||||
|
|
||||||
2. Change the COCO_ROOT and other settings you need in `config.py`. The directory structure should look like the follows:
|
2. Change the COCO_ROOT and other settings you need in `config.py`. The directory structure should look like the follows:
|
||||||
|
|
||||||
```
|
```
|
||||||
.
|
.
|
||||||
└─cocodataset
|
└─cocodataset
|
||||||
|
@ -81,36 +82,41 @@ pip install mmcv=0.2.14
|
||||||
├─val2017
|
├─val2017
|
||||||
└─train2017
|
└─train2017
|
||||||
```
|
```
|
||||||
|
|
||||||
If you use your own dataset to train the network, **Select dataset to other when run script.**
|
If you use your own dataset to train the network, **Select dataset to other when run script.**
|
||||||
Create a txt file to store dataset information organized in the way as shown as following:
|
Create a txt file to store dataset information organized in the way as shown as following:
|
||||||
|
|
||||||
```
|
```
|
||||||
train2017/0000001.jpg 0,259,401,459,7 35,28,324,201,2 0,30,59,80,2
|
train2017/0000001.jpg 0,259,401,459,7 35,28,324,201,2 0,30,59,80,2
|
||||||
```
|
```
|
||||||
|
|
||||||
Each row is an image annotation split by spaces. The first column is a relative path of image, followed by columns containing box and class information in the format [xmin,ymin,xmax,ymax,class]. We read image from an image path joined by the `IMAGE_DIR`(dataset directory) and the relative path in `ANNO_PATH`(the TXT file path), which can be set in `config.py`.
|
Each row is an image annotation split by spaces. The first column is a relative path of image, followed by columns containing box and class information in the format [xmin,ymin,xmax,ymax,class]. We read image from an image path joined by the `IMAGE_DIR`(dataset directory) and the relative path in `ANNO_PATH`(the TXT file path), which can be set in `config.py`.
|
||||||
|
|
||||||
3. Execute train script.
|
3. Execute train script.
|
||||||
After dataset preparation, you can start training as follows:
|
After dataset preparation, you can start training as follows:
|
||||||
|
|
||||||
```
|
```
|
||||||
# distributed training
|
# distributed training
|
||||||
sh run_distribute_train.sh [RANK_TABLE_FILE] [PRETRAINED_CKPT]
|
bash run_distribute_train.sh [RANK_TABLE_FILE] [PRETRAINED_CKPT]
|
||||||
|
|
||||||
# standalone training
|
# standalone training
|
||||||
sh run_standalone_train.sh [PRETRAINED_CKPT]
|
bash run_standalone_train.sh [PRETRAINED_CKPT]
|
||||||
```
|
```
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
1. To speed up data preprocessing, MindSpore provide a data format named MindRecord, hence the first step is to generate MindRecord files based on COCO2017 dataset before training. The process of converting raw COCO2017 dataset to MindRecord format may take about 4 hours.
|
1. To speed up data preprocessing, MindSpore provide a data format named MindRecord, hence the first step is to generate MindRecord files based on COCO2017 dataset before training. The process of converting raw COCO2017 dataset to MindRecord format may take about 4 hours.
|
||||||
2. For distributed training, a [hccl configuration file](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/utils/hccl_tools) with JSON format needs to be created in advance.
|
2. For distributed training, a [hccl configuration file](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/utils/hccl_tools) with JSON format needs to be created in advance.
|
||||||
3. PRETRAINED_CKPT is a resnet50 checkpoint that trained over ImageNet2012.
|
3. PRETRAINED_CKPT is a resnet50 checkpoint that trained over ImageNet2012.
|
||||||
4. For large models like MaskRCNN, it's better to export an external environment variable `export HCCL_CONNECT_TIMEOUT=600` to extend hccl connection checking time from the default 120 seconds to 600 seconds. Otherwise, the connection could be timeout since compiling time increases with the growth of model size.
|
4. For large models like MaskRCNN, it's better to export an external environment variable `export HCCL_CONNECT_TIMEOUT=600` to extend hccl connection checking time from the default 120 seconds to 600 seconds. Otherwise, the connection could be timeout since compiling time increases with the growth of model size.
|
||||||
|
|
||||||
|
|
||||||
4. Execute eval script.
|
4. Execute eval script.
|
||||||
After training, you can start evaluation as follows:
|
After training, you can start evaluation as follows:
|
||||||
|
|
||||||
```bash
|
```shell
|
||||||
# Evaluation
|
# Evaluation
|
||||||
sh run_eval.sh [VALIDATION_JSON_FILE] [CHECKPOINT_PATH]
|
bash run_eval.sh [VALIDATION_JSON_FILE] [CHECKPOINT_PATH]
|
||||||
```
|
```
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
1. VALIDATION_JSON_FILE is a label json file for evaluation.
|
1. VALIDATION_JSON_FILE is a label json file for evaluation.
|
||||||
|
|
||||||
|
@ -153,23 +159,24 @@ pip install mmcv=0.2.14
|
||||||
## [Script Parameters](#contents)
|
## [Script Parameters](#contents)
|
||||||
|
|
||||||
### [Training Script Parameters](#contents)
|
### [Training Script Parameters](#contents)
|
||||||
```
|
|
||||||
|
```shell
|
||||||
# distributed training
|
# distributed training
|
||||||
Usage: sh run_distribute_train.sh [RANK_TABLE_FILE] [PRETRAINED_MODEL]
|
Usage: bash run_distribute_train.sh [RANK_TABLE_FILE] [PRETRAINED_MODEL]
|
||||||
|
|
||||||
# standalone training
|
# standalone training
|
||||||
Usage: sh run_standalone_train.sh [PRETRAINED_MODEL]
|
Usage: bash run_standalone_train.sh [PRETRAINED_MODEL]
|
||||||
```
|
```
|
||||||
|
|
||||||
### [Parameters Configuration](#contents)
|
### [Parameters Configuration](#contents)
|
||||||
```
|
|
||||||
|
```txt
|
||||||
"img_width": 1280, # width of the input images
|
"img_width": 1280, # width of the input images
|
||||||
"img_height": 768, # height of the input images
|
"img_height": 768, # height of the input images
|
||||||
|
|
||||||
# random threshold in data augmentation
|
# random threshold in data augmentation
|
||||||
"keep_ratio": True,
|
"keep_ratio": True,
|
||||||
"flip_ratio": 0.5,
|
"flip_ratio": 0.5,
|
||||||
"photo_ratio": 0.5,
|
|
||||||
"expand_ratio": 1.0,
|
"expand_ratio": 1.0,
|
||||||
|
|
||||||
"max_instance_count": 128, # max number of bbox for each image
|
"max_instance_count": 128, # max number of bbox for each image
|
||||||
|
@ -261,7 +268,6 @@ Usage: sh run_standalone_train.sh [PRETRAINED_MODEL]
|
||||||
"test_max_per_img": 100, # max number of instance
|
"test_max_per_img": 100, # max number of instance
|
||||||
"test_batch_size": 2, # batch size
|
"test_batch_size": 2, # batch size
|
||||||
|
|
||||||
"rpn_head_loss_type": "CrossEntropyLoss", # loss type in rpn
|
|
||||||
"rpn_head_use_sigmoid": True, # whether use sigmoid or not in rpn
|
"rpn_head_use_sigmoid": True, # whether use sigmoid or not in rpn
|
||||||
"rpn_head_weight": 1.0, # rpn head weight in loss
|
"rpn_head_weight": 1.0, # rpn head weight in loss
|
||||||
"mask_thr_binary": 0.5, # mask threshold for in rcnn
|
"mask_thr_binary": 0.5, # mask threshold for in rcnn
|
||||||
|
@ -271,7 +277,6 @@ Usage: sh run_standalone_train.sh [PRETRAINED_MODEL]
|
||||||
"base_step": 58633, # bsae step in lr generator
|
"base_step": 58633, # bsae step in lr generator
|
||||||
"total_epoch": 13, # total epoch in lr generator
|
"total_epoch": 13, # total epoch in lr generator
|
||||||
"warmup_step": 500, # warmp up step in lr generator
|
"warmup_step": 500, # warmp up step in lr generator
|
||||||
"warmup_mode": "linear", # warmp up mode
|
|
||||||
"warmup_ratio": 1/3.0, # warpm up ratio
|
"warmup_ratio": 1/3.0, # warpm up ratio
|
||||||
"sgd_momentum": 0.9, # momentum in optimizer
|
"sgd_momentum": 0.9, # momentum in optimizer
|
||||||
|
|
||||||
|
@ -310,24 +315,25 @@ Usage: sh run_standalone_train.sh [PRETRAINED_MODEL]
|
||||||
"num_classes": 81
|
"num_classes": 81
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## [Training Process](#contents)
|
## [Training Process](#contents)
|
||||||
|
|
||||||
- Set options in `config.py`, including loss_scale, learning rate and network hyperparameters. Click [here](https://www.mindspore.cn/tutorial/training/zh-CN/master/use/data_preparation.html) for more information about dataset.
|
- Set options in `config.py`, including loss_scale, learning rate and network hyperparameters. Click [here](https://www.mindspore.cn/tutorial/training/zh-CN/master/use/data_preparation.html) for more information about dataset.
|
||||||
|
|
||||||
### [Training](#content)
|
### [Training](#content)
|
||||||
|
|
||||||
- Run `run_standalone_train.sh` for non-distributed training of MaskRCNN model.
|
- Run `run_standalone_train.sh` for non-distributed training of MaskRCNN model.
|
||||||
|
|
||||||
```
|
```bash
|
||||||
# standalone training
|
# standalone training
|
||||||
sh run_standalone_train.sh [PRETRAINED_MODEL]
|
bash run_standalone_train.sh [PRETRAINED_MODEL]
|
||||||
```
|
```
|
||||||
|
|
||||||
### [Distributed Training](#content)
|
### [Distributed Training](#content)
|
||||||
|
|
||||||
- Run `run_distribute_train.sh` for distributed training of Mask model.
|
- Run `run_distribute_train.sh` for distributed training of Mask model.
|
||||||
```
|
|
||||||
sh run_distribute_train.sh [RANK_TABLE_FILE] [PRETRAINED_MODEL]
|
```bash
|
||||||
|
bash run_distribute_train.sh [RANK_TABLE_FILE] [PRETRAINED_MODEL]
|
||||||
```
|
```
|
||||||
|
|
||||||
> hccl.json which is specified by RANK_TABLE_FILE is needed when you are running a distribute task. You can generate it by using the [hccl_tools](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/utils/hccl_tools).
|
> hccl.json which is specified by RANK_TABLE_FILE is needed when you are running a distribute task. You can generate it by using the [hccl_tools](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/utils/hccl_tools).
|
||||||
|
@ -338,8 +344,7 @@ sh run_distribute_train.sh [RANK_TABLE_FILE] [PRETRAINED_MODEL]
|
||||||
|
|
||||||
Training result will be stored in the example path, whose folder name begins with "train" or "train_parallel". You can find checkpoint file together with result like the followings in loss_rankid.log.
|
Training result will be stored in the example path, whose folder name begins with "train" or "train_parallel". You can find checkpoint file together with result like the followings in loss_rankid.log.
|
||||||
|
|
||||||
|
```bash
|
||||||
```
|
|
||||||
# distribute training result(8p)
|
# distribute training result(8p)
|
||||||
epoch: 1 step: 7393 ,rpn_loss: 0.05716, rcnn_loss: 0.81152, rpn_cls_loss: 0.04828, rpn_reg_loss: 0.00889, rcnn_cls_loss: 0.28784, rcnn_reg_loss: 0.17590, rcnn_mask_loss: 0.34790, total_loss: 0.86868
|
epoch: 1 step: 7393 ,rpn_loss: 0.05716, rcnn_loss: 0.81152, rpn_cls_loss: 0.04828, rpn_reg_loss: 0.00889, rcnn_cls_loss: 0.28784, rcnn_reg_loss: 0.17590, rcnn_mask_loss: 0.34790, total_loss: 0.86868
|
||||||
epoch: 2 step: 7393 ,rpn_loss: 0.00434, rcnn_loss: 0.36572, rpn_cls_loss: 0.00339, rpn_reg_loss: 0.00095, rcnn_cls_loss: 0.08240, rcnn_reg_loss: 0.05554, rcnn_mask_loss: 0.22778, total_loss: 0.37006
|
epoch: 2 step: 7393 ,rpn_loss: 0.00434, rcnn_loss: 0.36572, rpn_cls_loss: 0.00339, rpn_reg_loss: 0.00095, rcnn_cls_loss: 0.08240, rcnn_reg_loss: 0.05554, rcnn_mask_loss: 0.22778, total_loss: 0.37006
|
||||||
|
@ -355,10 +360,12 @@ epoch: 12 step: 7393 ,rpn_loss: 0.00547, rcnn_loss: 0.39258, rpn_cls_loss: 0.002
|
||||||
### [Evaluation](#content)
|
### [Evaluation](#content)
|
||||||
|
|
||||||
- Run `run_eval.sh` for evaluation.
|
- Run `run_eval.sh` for evaluation.
|
||||||
```
|
|
||||||
|
```bash
|
||||||
# infer
|
# infer
|
||||||
sh run_eval.sh [VALIDATION_ANN_FILE_JSON] [CHECKPOINT_PATH]
|
bash run_eval.sh [VALIDATION_ANN_FILE_JSON] [CHECKPOINT_PATH]
|
||||||
```
|
```
|
||||||
|
|
||||||
> As for the COCO2017 dataset, VALIDATION_ANN_FILE_JSON is refer to the annotations/instances_val2017.json in the dataset directory.
|
> As for the COCO2017 dataset, VALIDATION_ANN_FILE_JSON is refer to the annotations/instances_val2017.json in the dataset directory.
|
||||||
> checkpoint can be produced and saved in training process, whose folder name begins with "train/checkpoint" or "train_parallel*/checkpoint".
|
> checkpoint can be produced and saved in training process, whose folder name begins with "train/checkpoint" or "train_parallel*/checkpoint".
|
||||||
|
|
||||||
|
@ -366,7 +373,7 @@ sh run_eval.sh [VALIDATION_ANN_FILE_JSON] [CHECKPOINT_PATH]
|
||||||
|
|
||||||
Inference result will be stored in the example path, whose folder name is "eval". Under this, you can find result like the followings in log.
|
Inference result will be stored in the example path, whose folder name is "eval". Under this, you can find result like the followings in log.
|
||||||
|
|
||||||
```
|
```bash
|
||||||
Evaluate annotation type *bbox*
|
Evaluate annotation type *bbox*
|
||||||
Accumulating evaluation results...
|
Accumulating evaluation results...
|
||||||
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.378
|
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.378
|
||||||
|
@ -399,6 +406,7 @@ Accumulating evaluation results...
|
||||||
```
|
```
|
||||||
|
|
||||||
# Model Description
|
# Model Description
|
||||||
|
|
||||||
## Performance
|
## Performance
|
||||||
|
|
||||||
### Evaluation Performance
|
### Evaluation Performance
|
||||||
|
@ -422,7 +430,6 @@ Accumulating evaluation results...
|
||||||
| Model for inference | 571M(.air file) |
|
| Model for inference | 571M(.air file) |
|
||||||
| Scripts | [maskrcnn script](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/maskrcnn) |
|
| Scripts | [maskrcnn script](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/maskrcnn) |
|
||||||
|
|
||||||
|
|
||||||
### Inference Performance
|
### Inference Performance
|
||||||
|
|
||||||
| Parameters | Ascend |
|
| Parameters | Ascend |
|
||||||
|
@ -437,9 +444,10 @@ Accumulating evaluation results...
|
||||||
| Accuracy | IoU=0.50:0.95 (BoundingBox 37.0%, Mask 33.5) |
|
| Accuracy | IoU=0.50:0.95 (BoundingBox 37.0%, Mask 33.5) |
|
||||||
| Model for inference | 170M (.ckpt file) |
|
| Model for inference | 170M (.ckpt file) |
|
||||||
|
|
||||||
|
|
||||||
# [Description of Random Situation](#contents)
|
# [Description of Random Situation](#contents)
|
||||||
|
|
||||||
In dataset.py, we set the seed inside “create_dataset" function. We also use random seed in train.py for weight initialization.
|
In dataset.py, we set the seed inside “create_dataset" function. We also use random seed in train.py for weight initialization.
|
||||||
|
|
||||||
# [ModelZoo Homepage](#contents)
|
# [ModelZoo Homepage](#contents)
|
||||||
|
|
||||||
Please check the official [homepage](https://gitee.com/mindspore/mindspore/tree/master/model_zoo).
|
Please check the official [homepage](https://gitee.com/mindspore/mindspore/tree/master/model_zoo).
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
if [ $# != 2 ]
|
if [ $# != 2 ]
|
||||||
then
|
then
|
||||||
echo "Usage: sh run_train.sh [RANK_TABLE_FILE] [PRETRAINED_PATH]"
|
echo "Usage: bash run_train.sh [RANK_TABLE_FILE] [PRETRAINED_PATH]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
if [ $# != 2 ]
|
if [ $# != 2 ]
|
||||||
then
|
then
|
||||||
echo "Usage: sh run_eval.sh [ANN_FILE] [CHECKPOINT_PATH]"
|
echo "Usage: bash run_eval.sh [ANN_FILE] [CHECKPOINT_PATH]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
if [ $# != 1 ]
|
if [ $# != 1 ]
|
||||||
then
|
then
|
||||||
echo "Usage: sh run_standalone_train.sh [PRETRAINED_PATH]"
|
echo "Usage: bash run_standalone_train.sh [PRETRAINED_PATH]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@ config = ed({
|
||||||
"img_height": 768,
|
"img_height": 768,
|
||||||
"keep_ratio": True,
|
"keep_ratio": True,
|
||||||
"flip_ratio": 0.5,
|
"flip_ratio": 0.5,
|
||||||
"photo_ratio": 0.5,
|
|
||||||
"expand_ratio": 1.0,
|
"expand_ratio": 1.0,
|
||||||
|
|
||||||
"max_instance_count": 128,
|
"max_instance_count": 128,
|
||||||
|
@ -114,7 +113,6 @@ config = ed({
|
||||||
"test_max_per_img": 100,
|
"test_max_per_img": 100,
|
||||||
"test_batch_size": 2,
|
"test_batch_size": 2,
|
||||||
|
|
||||||
"rpn_head_loss_type": "CrossEntropyLoss",
|
|
||||||
"rpn_head_use_sigmoid": True,
|
"rpn_head_use_sigmoid": True,
|
||||||
"rpn_head_weight": 1.0,
|
"rpn_head_weight": 1.0,
|
||||||
"mask_thr_binary": 0.5,
|
"mask_thr_binary": 0.5,
|
||||||
|
@ -123,7 +121,6 @@ config = ed({
|
||||||
"base_lr": 0.02,
|
"base_lr": 0.02,
|
||||||
"base_step": 58633,
|
"base_step": 58633,
|
||||||
"total_epoch": 13,
|
"total_epoch": 13,
|
||||||
"warmup_step": 500,
|
|
||||||
"warmup_mode": "linear",
|
"warmup_mode": "linear",
|
||||||
"warmup_ratio": 1/3.0,
|
"warmup_ratio": 1/3.0,
|
||||||
"sgd_momentum": 0.9,
|
"sgd_momentum": 0.9,
|
||||||
|
|
Loading…
Reference in New Issue