You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Fix mosaic repr typo (#6523)
* Include mmflow in readme (#6545)
* Include mmflow in readme
* Include mmflow in README_zh-CN
* Add mmflow url into the document menu in docs/conf.py and docs_zh-CN/conf.py.
* Make OHEM work with seesaw loss (#6514)
* [Enhance] Support file_client in Datasets and evaluating panoptic results on Ceph (#6489)
* first version
* Replace with our api
* Add copyright
* Move the runtime error to multi_core interface
* Add docstring
* Fix comments
* Add comments
* Add unit test for pq_compute_single_core
* Fix MMDetection model to ONNX command (#6558)
* Update README.md (#6567)
* [Feature] Support custom persistent_workers (#6435)
* Fix aug test error when the number of prediction bboxes is 0 (#6398)
* Fix aug test error when the number of prediction bboxes is 0
* test
* test
* fix lint
* Support custom pin_memory and persistent_workers
* fix comment
* fix docstr
* remove pin_memory
* Fix SSD512 config error (#6574)
* Fix mosaic repr typo (#6523)
* Include mmflow in readme (#6545)
* Include mmflow in readme
* Include mmflow in README_zh-CN
* Add mmflow url into the document menu in docs/conf.py and docs_zh-CN/conf.py.
* Make OHEM work with seesaw loss (#6514)
* Fix ssd512 config error
Co-authored-by: Kyungmin Lee <30465912+lkm2835@users.noreply.github.com>
Co-authored-by: Czm369 <40661020+Czm369@users.noreply.github.com>
Co-authored-by: ohwi <supebulous@gmail.com>
* Catch symlink failure on Windows (#6482)
* Catch symlink failure on Windows
Signed-off-by: del-zhenwu <dele.zhenwu@gmail.com>
* Set copy mode on Windows
Signed-off-by: del-zhenwu <dele.zhenwu@gmail.com>
* Fix lint
Signed-off-by: del-zhenwu <dele.zhenwu@gmail.com>
* Fix logic error
Signed-off-by: del-zhenwu <dele.zhenwu@gmail.com>
* [Feature] Support Label Assignment Distillation (LAD) (#6342)
* add LAD
* inherit LAD from KnowledgeDistillationSingleStageDetector
* add configs/lad/lad_r101_paa_r50_fpn_coco_1x.py
* update LAD readme
* update configs/lad/README.md
* try not to use abbreviations for variable names
* add unittest for lad_head
* update test_lad_head
* remove main in tests/test_models/test_dense_heads/test_lad_head.py
* [Fix] Avoid infinite GPU waiting in dist training (#6501)
* [#6495] fix infinite GPU waiting in dist training
* print log_vars keys in assertion msg
* linting issue
* Support to collect the best models (#6560)
* Fix mosaic repr typo (#6523)
* Include mmflow in readme (#6545)
* Include mmflow in readme
* Include mmflow in README_zh-CN
* Add mmflow url into the document menu in docs/conf.py and docs_zh-CN/conf.py.
* Make OHEM work with seesaw loss (#6514)
* update
* support gather best model
Co-authored-by: Kyungmin Lee <30465912+lkm2835@users.noreply.github.com>
Co-authored-by: Czm369 <40661020+Czm369@users.noreply.github.com>
Co-authored-by: ohwi <supebulous@gmail.com>
* [Enhance]: Optimize augmentation pipeline to speed up training. (#6442)
* Refactor YOLOX (#6443)
* Fix aug test error when the number of prediction bboxes is 0 (#6398)
* Fix aug test error when the number of prediction bboxes is 0
* test
* test
* fix lint
* Support custom pin_memory and persistent_workers
* [Docs] Chinese version of robustness_benchmarking.md (#6375)
* Chinese version of robustness_benchmarking.md
* Update docs_zh-CN/robustness_benchmarking.md
Co-authored-by: RangiLyu <lyuchqi@gmail.com>
* Update docs_zh-CN/robustness_benchmarking.md
Co-authored-by: RangiLyu <lyuchqi@gmail.com>
* Update docs_zh-CN/robustness_benchmarking.md
Co-authored-by: RangiLyu <lyuchqi@gmail.com>
* Update docs_zh-CN/robustness_benchmarking.md
Co-authored-by: RangiLyu <lyuchqi@gmail.com>
* Update docs_zh-CN/robustness_benchmarking.md
Co-authored-by: RangiLyu <lyuchqi@gmail.com>
* Update docs_zh-CN/robustness_benchmarking.md
Co-authored-by: RangiLyu <lyuchqi@gmail.com>
* Update robustness_benchmarking.md
* Update robustness_benchmarking.md
* Update robustness_benchmarking.md
* Update robustness_benchmarking.md
* Update robustness_benchmarking.md
* Update robustness_benchmarking.md
Co-authored-by: RangiLyu <lyuchqi@gmail.com>
* update yolox_s
* update yolox_s
* support dynamic eval interval
* fix some error
* support ceph
* fix none error
* fix batch error
* replace resize
* fix comment
* fix docstr
* Update the link of checkpoints (#6460)
* [Feature]: Support plot confusion matrix. (#6344)
* remove pin_memory
* update
* fix unittest
* update cfg
* fix error
* add unittest
* [Fix] Fix SpatialReductionAttention in PVT. (#6488)
* [Fix] Fix SpatialReductionAttention in PVT
* Add warning
* Save coco summarize print information to logger (#6505)
* Fix type error in 2_new_data_mode (#6469)
* Always map location to cpu when load checkpoint (#6405)
* configs: update groie README (#6401)
Signed-off-by: Leonardo Rossi <leonardo.rossi@unipr.it>
* [Fix] fix config path in docs (#6396)
* [Enchance] Set a random seed when the user does not set a seed. (#6457)
* fix random seed bug
* add comment
* enchance random seed
* rename
Co-authored-by: Haobo Yuan <yuanhaobo@whu.edu.cn>
* [BugFixed] fix wrong trunc_normal_init use (#6432)
* fix wrong trunc_normal_init use
* fix wrong trunc_normal_init use
* fix #6446
Co-authored-by: Uno Wu <st9007a@gmail.com>
Co-authored-by: Leonardo Rossi <leonardo.rossi@unipr.it>
Co-authored-by: BigDong <yudongwang@tju.edu.cn>
Co-authored-by: Haian Huang(深度眸) <1286304229@qq.com>
Co-authored-by: Haobo Yuan <yuanhaobo@whu.edu.cn>
Co-authored-by: Shusheng Yang <shusheng.yang@qq.com>
* bump version to v2.18.1 (#6510)
* bump version to v2.18.1
* Update changelog.md
* add some comment
* fix some comment
* update readme
* fix lint
* add reduce mean
* update
* update readme
* update params
Co-authored-by: Cedric Luo <luochunhua1996@outlook.com>
Co-authored-by: RangiLyu <lyuchqi@gmail.com>
Co-authored-by: Guangchen Lin <347630870@qq.com>
Co-authored-by: Andrea Panizza <8233615+AndreaPi@users.noreply.github.com>
Co-authored-by: Uno Wu <st9007a@gmail.com>
Co-authored-by: Leonardo Rossi <leonardo.rossi@unipr.it>
Co-authored-by: BigDong <yudongwang@tju.edu.cn>
Co-authored-by: Haobo Yuan <yuanhaobo@whu.edu.cn>
Co-authored-by: Shusheng Yang <shusheng.yang@qq.com>
* [Refactor] Remove some code in `mmdet/apis/train.py` (#6576)
* remove some code about custom hooks in apis/train.py
* files were modified by yapf
* Fix lad repeatedly output warning message (#6584)
* update faq docs
* update
* update
* update
* fix lint
* update
* update
* update
* update readme
* Rephrase
Co-authored-by: Kyungmin Lee <30465912+lkm2835@users.noreply.github.com>
Co-authored-by: Czm369 <40661020+Czm369@users.noreply.github.com>
Co-authored-by: ohwi <supebulous@gmail.com>
Co-authored-by: Guangchen Lin <347630870@qq.com>
Co-authored-by: Rishit Dagli <rishit.dagli@gmail.com>
Co-authored-by: RangiLyu <lyuchqi@gmail.com>
Co-authored-by: del-zhenwu <dele.zhenwu@gmail.com>
Co-authored-by: Thuy Ng <thuypn9a4@gmail.com>
Co-authored-by: Han Zhang <623606860@qq.com>
Co-authored-by: Cedric Luo <luochunhua1996@outlook.com>
Co-authored-by: Andrea Panizza <8233615+AndreaPi@users.noreply.github.com>
Co-authored-by: Uno Wu <st9007a@gmail.com>
Co-authored-by: Leonardo Rossi <leonardo.rossi@unipr.it>
Co-authored-by: BigDong <yudongwang@tju.edu.cn>
Co-authored-by: Haobo Yuan <yuanhaobo@whu.edu.cn>
Co-authored-by: Shusheng Yang <shusheng.yang@qq.com>
Co-authored-by: Wenwei Zhang <40779233+ZwwWayne@users.noreply.github.com>
Copy file name to clipboardexpand all lines: docs/faq.md
+44
Original file line number
Diff line number
Diff line change
@@ -74,6 +74,7 @@ We list some common troubles faced by many users and their corresponding solutio
74
74
2. Reduce the learning rate: the learning rate might be too large due to some reasons, e.g., change of batch size. You can rescale them to the value that could stably train the model.
75
75
3. Extend the warmup iterations: some models are sensitive to the learning rate at the start of the training. You can extend the warmup iterations, e.g., change the `warmup_iters` from 500 to 1000 or 2000.
76
76
4. Add gradient clipping: some models requires gradient clipping to stabilize the training process. The default of `grad_clip` is `None`, you can add gradient clippint to avoid gradients that are too large, i.e., set`optimizer_config=dict(_delete_=True, grad_clip=dict(max_norm=35, norm_type=2))`in your config file. If your config does not inherits from any basic config that contains `optimizer_config=dict(grad_clip=None)`, you can simply add `optimizer_config=dict(grad_clip=dict(max_norm=35, norm_type=2))`.
77
+
77
78
- ’GPU out of memory"
78
79
1. There are some scenarios when there are large amount of ground truth boxes, which may cause OOM during target assignment. You can set `gpu_assign_thr=N` in the config of assigner thus the assigner will calculate box overlaps through CPU when there are more than N GT boxes.
79
80
2. Set `with_cp=True` in the backbone. This uses the sublinear strategy in PyTorch to reduce GPU memory cost in the backbone.
@@ -84,8 +85,51 @@ We list some common troubles faced by many users and their corresponding solutio
84
85
2. You can set ` find_unused_parameters = True` in the config to solve the above problems(but this will slow down the training speed.
85
86
3. If the version of your MMCV >= 1.4.1, you can get the name of those unused parameters with `detect_anomalous_params=True` in `optimizer_config` of config.
86
87
88
+
- Save the best model
89
+
90
+
It can be turned on by configuring `evaluation = dict(save_best=‘auto’)`. In the case of the `auto` parameter, the first key in the returned evaluation result will be used as the basis for selecting the best model. You can also directly set the key in the evaluation result to manually set it, for example, `evaluation = dict(save_best='mAP' )`.
91
+
92
+
- Resume training with `ExpMomentumEMAHook`
93
+
94
+
If you use `ExpMomentumEMAHook` in training, you can't just use command line parameters `--resume-from` nor `--cfg-options resume_from` to restore model parameters during resume, i.e., the command `python tools/train.py configs/yolox/yolox_s_8x8_300e_coco.py --resume-from ./work_dir/yolox_s_8x8_300e_coco/epoch_x.pth ` will not work. Since `ExpMomentumEMAHook` needs to reload the weights, taking the `yolox_s` algorithm as an example, you should modify the values of `resume_from` in two places of the config as below:
95
+
96
+
```python
97
+
# Open configs/yolox/yolox_s_8x8_300e_coco.py directly and modify all resume_from fields
1. According to the definition of COCO dataset, the small and medium areas in an image are less than 1024 (32\*32), 9216 (96\*96), respectively.
91
112
2. If the corresponding area has no object, the result of AP and AR will set to -1.
113
+
114
+
## Model
115
+
116
+
- `style` in ResNet
117
+
118
+
The `style` parameter in ResNet allows either `pytorch` or `caffe` style. It indicates the difference in the Bottleneck module. Bottleneck is a stacking structure of `1x1-3x3-1x1` convolutional layers. In the case of `caffe` mode, the convolution layer with `stride=2` is the first `1x1` convolution, while in `pyorch` mode, it is the second `3x3` convolution has `stride=2`. A sample code is as below:
119
+
120
+
```python
121
+
if self.style == 'pytorch':
122
+
self.conv1_stride = 1
123
+
self.conv2_stride = stride
124
+
else:
125
+
self.conv1_stride = stride
126
+
self.conv2_stride = 1
127
+
```
128
+
129
+
- ResNeXt parameter description
130
+
131
+
ResNeXt comes from the paper [`Aggregated Residual Transformations forDeep Neural Networks`](https://arxiv.org/abs/1611.05431). It introduces group and uses “cardinality” to control the number of groups to achieve a balance between accuracy and complexity. It controls the basic width and grouping parameters of the internal Bottleneck module through two hyperparameters `baseWidth` and `cardinality`. An example configuration namein MMDetection is `mask_rcnn_x101_64x4d_fpn_mstrain-poly_3x_coco.py`, where `mask_rcnn` represents the algorithm using Mask R-CNN, `x101` represents the backbone network using ResNeXt-101, and `64x4d` represents that the bottleneck block has 64 group and each group has basic width of 4.
132
+
133
+
- `norm_eval`in backbone
134
+
135
+
Since the detection model is usually large and the input image resolution is high, this will result in a small batch of the detection model, which will make the variance of the statistics calculated by BatchNorm during the training process very large and not as stable as the statistics obtained during the pre-training of the backbone network . Therefore, the `norm_eval=True` mode is generally used in training, and the BatchNorm statistics in the pre-trained backbone network are directly used. The few algorithms that use large batches are the `norm_eval=False` mode, such as NASFPN. For the backbone network without ImageNet pre-training and the batch is relatively small, you can consider using `SyncBN`.
0 commit comments