From 4d8229c141ae4f971b978a58c6b2861c59955fce Mon Sep 17 00:00:00 2001 From: Junjun2016 Date: Thu, 16 Sep 2021 23:23:50 +0800 Subject: [PATCH] [Docs] Improve docs style (#879) * Improve docs style * update lists * update the size of image * modify duplicate mmdet3d --- .github/CONTRIBUTING.md | 3 +- configs/deeplabv3/README.md | 4 +- configs/deeplabv3plus/README.md | 3 +- docs/_static/css/readthedocs.css | 6 ++ docs/_static/images/mmsegmentation.png | Bin 0 -> 44728 bytes docs/api.rst | 3 - docs/conf.py | 100 +++++++++++++++-- docs/get_started.md | 7 +- docs/inference.md | 4 +- docs/model_zoo.md | 4 +- docs/tutorials/customize_datasets.md | 4 +- docs/tutorials/customize_runtime.md | 4 +- docs/useful_tools.md | 28 +++-- docs_zh-CN/_static/css/readthedocs.css | 6 ++ docs_zh-CN/_static/images/mmsegmentation.png | Bin 0 -> 44728 bytes docs_zh-CN/api.rst | 3 - docs_zh-CN/conf.py | 106 +++++++++++++++++-- docs_zh-CN/tutorials/data_pipeline.md | 2 +- requirements/docs.txt | 6 +- setup.cfg | 2 +- 20 files changed, 255 insertions(+), 40 deletions(-) create mode 100644 docs/_static/css/readthedocs.css create mode 100644 docs/_static/images/mmsegmentation.png create mode 100644 docs_zh-CN/_static/css/readthedocs.css create mode 100644 docs_zh-CN/_static/images/mmsegmentation.png diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 112527ec88..0bb316f1ab 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -12,11 +12,12 @@ All kinds of contributions are welcome, including but not limited to the followi 3. commit your changes 4. create a PR -Note +:::{note} - If you plan to add some new features that involve large changes, it is encouraged to open an issue for discussion first. - If you are the author of some papers and would like to include your method to mmsegmentation, please contact Kai Chen (chenkaidev[at]gmail[dot]com). We will much appreciate your contribution. +::: ## Code style diff --git a/configs/deeplabv3/README.md b/configs/deeplabv3/README.md index 02c27753ab..06caa337b1 100644 --- a/configs/deeplabv3/README.md +++ b/configs/deeplabv3/README.md @@ -15,7 +15,9 @@ ## Results and models -Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series. +:::{note} +`D-8` here corresponding to the output stride 8 setting for DeepLab series. +::: ### Cityscapes diff --git a/configs/deeplabv3plus/README.md b/configs/deeplabv3plus/README.md index be46e329b6..16702feb39 100644 --- a/configs/deeplabv3plus/README.md +++ b/configs/deeplabv3plus/README.md @@ -15,9 +15,10 @@ ## Results and models -Note: +:::{note} `D-8`/`D-16` here corresponding to the output stride 8/16 setting for DeepLab series. `MG-124` stands for multi-grid dilation in the last stage of ResNet. +::: ### Cityscapes diff --git a/docs/_static/css/readthedocs.css b/docs/_static/css/readthedocs.css new file mode 100644 index 0000000000..2e38d0880b --- /dev/null +++ b/docs/_static/css/readthedocs.css @@ -0,0 +1,6 @@ +.header-logo { + background-image: url("../images/mmsegmentation.png"); + background-size: 201px 40px; + height: 40px; + width: 201px; +} diff --git a/docs/_static/images/mmsegmentation.png b/docs/_static/images/mmsegmentation.png new file mode 100644 index 0000000000000000000000000000000000000000..009083a9e80599a1893591ff362da377c94a0975 GIT binary patch literal 44728 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 literal 0 HcmV?d00001 diff --git a/docs/api.rst b/docs/api.rst index 9c14a67564..8285841dc6 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -1,6 +1,3 @@ -API Reference -============== - mmseg.apis -------------- .. automodule:: mmseg.apis diff --git a/docs/conf.py b/docs/conf.py index aaea4244b2..4353266ce6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,6 +15,8 @@ import subprocess import sys +import pytorch_sphinx_theme + sys.path.insert(0, os.path.abspath('..')) # -- Project information ----------------------------------------------------- @@ -40,11 +42,8 @@ def get_version(): # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'recommonmark', - 'sphinx_markdown_tables', + 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', + 'sphinx_markdown_tables', 'sphinx_copybutton', 'myst_parser' ] autodoc_mock_imports = [ @@ -75,12 +74,101 @@ def get_version(): # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +# html_theme = 'sphinx_rtd_theme' +html_theme = 'pytorch_sphinx_theme' +html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] +html_theme_options = { + # 'logo_url': 'https://mmsegmentation.readthedocs.io/en/latest/', + 'menu': [ + { + 'name': + 'Tutorial', + 'url': + 'https://github.com/open-mmlab/mmsegmentation/blob/master/' + 'demo/MMSegmentation_Tutorial.ipynb' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/mmsegmentation' + }, + { + 'name': + 'Upstream', + 'children': [ + { + 'name': 'MMCV', + 'url': 'https://github.com/open-mmlab/mmcv', + 'description': 'Foundational library for computer vision' + }, + ] + }, + { + 'name': + 'Projects', + 'children': [ + { + 'name': 'MMAction2', + 'url': 'https://github.com/open-mmlab/mmaction2', + }, + { + 'name': 'MMClassification', + 'url': 'https://github.com/open-mmlab/mmclassification', + }, + { + 'name': 'MMOCR', + 'url': 'https://github.com/open-mmlab/mmocr', + }, + { + 'name': 'MMDetection', + 'url': 'https://github.com/open-mmlab/mmdetection', + }, + { + 'name': 'MMEditing', + 'url': 'https://github.com/open-mmlab/mmediting', + }, + { + 'name': 'MMDetection3D', + 'url': 'https://github.com/open-mmlab/mmdetection3d', + }, + { + 'name': 'MMPose', + 'url': 'https://github.com/open-mmlab/mmpose', + }, + { + 'name': 'MMTracking', + 'url': 'https://github.com/open-mmlab/mmtracking', + }, + { + 'name': 'MMGeneration', + 'url': 'https://github.com/open-mmlab/mmgeneration', + }, + ] + }, + { + 'name': + 'OpenMMLab', + 'children': [ + { + 'name': 'Homepage', + 'url': 'https://openmmlab.com/' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/' + }, + ] + }, + ] +} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] +html_css_files = ['css/readthedocs.css'] + +# Enable ::: for my_st +myst_enable_extensions = ['colon_fence'] language = 'en' diff --git a/docs/get_started.md b/docs/get_started.md index f7d9bf0ec1..90479c9ba7 100644 --- a/docs/get_started.md +++ b/docs/get_started.md @@ -26,8 +26,10 @@ The compatible MMSegmentation and MMCV versions are as below. Please install the | 0.7.0 | mmcv-full>=1.1.2, <1.2.0 | | 0.6.0 | mmcv-full>=1.1.2, <1.2.0 | -Note: You need to run `pip uninstall mmcv` first if you have mmcv installed. +:::{note} +You need to run `pip uninstall mmcv` first if you have mmcv installed. If mmcv and mmcv-full are both installed, there will be `ModuleNotFoundError`. +::: ## Installation @@ -105,7 +107,7 @@ cd mmsegmentation pip install -e . # or "python setup.py develop" ``` -Note: +:::{note} 1. When training or testing models on Windows, please ensure that all the '\\' in paths are replaced with '/'. Add .replace('\\', '/') to your python code wherever path strings occur. 2. The `version+git_hash` will also be saved in trained models meta, e.g. 0.5.0+c415a2e. @@ -114,6 +116,7 @@ Note: you can install it before installing MMCV. 5. Some dependencies are optional. Simply running `pip install -e .` will only install the minimum runtime requirements. To use optional dependencies like `cityscapessripts` either install them manually with `pip install -r requirements/optional.txt` or specify desired extras when calling `pip` (e.g. `pip install -e .[optional]`). Valid keys for the extras field are: `all`, `tests`, `build`, and `optional`. +::: ### A from-scratch setup script diff --git a/docs/inference.md b/docs/inference.md index 65f1e4602b..632400d343 100644 --- a/docs/inference.md +++ b/docs/inference.md @@ -63,8 +63,10 @@ Assume that you have already downloaded the checkpoints to the directory `checkp 4 --out results.pkl --eval mIoU cityscapes ``` - Note: There is some gap (~0.1%) between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. + :::{note} + There is some gap (~0.1%) between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default. We use the simple version without average for all datasets. +::: 5. Test PSPNet on cityscapes test split with 4 GPUs, and generate the png files to be submit to the official evaluation server. diff --git a/docs/model_zoo.md b/docs/model_zoo.md index 38064957a5..7babd2e5bd 100644 --- a/docs/model_zoo.md +++ b/docs/model_zoo.md @@ -176,4 +176,6 @@ The training speed is reported as followed, in terms of second per iter (s/iter) | [CASILVision](https://github.com/CSAILVision/semantic-segmentation-pytorch) | 1.15 | N/A | | [vedaseg](https://github.com/Media-Smart/vedaseg) | 0.95 | 1.25 | -Note: The output stride of DeepLabV3+ is 8. +:::{note} +The output stride of DeepLabV3+ is 8. +::: diff --git a/docs/tutorials/customize_datasets.md b/docs/tutorials/customize_datasets.md index 020d51316e..8ed524c2c4 100644 --- a/docs/tutorials/customize_datasets.md +++ b/docs/tutorials/customize_datasets.md @@ -42,8 +42,10 @@ Only `data/my_dataset/ann_dir/train/xxx{seg_map_suffix}`, `data/my_dataset/ann_dir/train/zzz{seg_map_suffix}` will be loaded. -Note: The annotations are images of shape (H, W), the value pixel should fall in range `[0, num_classes - 1]`. +:::{note} +The annotations are images of shape (H, W), the value pixel should fall in range `[0, num_classes - 1]`. You may use `'P'` mode of [pillow](https://pillow.readthedocs.io/en/stable/handbook/concepts.html#palette) to create your annotation image with color. +::: ## Customize datasets by mixing dataset diff --git a/docs/tutorials/customize_runtime.md b/docs/tutorials/customize_runtime.md index dd67ef54f6..3b9097b432 100644 --- a/docs/tutorials/customize_runtime.md +++ b/docs/tutorials/customize_runtime.md @@ -176,12 +176,14 @@ In such case, we can set the workflow as so that 1 epoch for training and 1 epoch for validation will be run iteratively. -**Note**: +:::{note} 1. The parameters of model will not be updated during val epoch. 2. Keyword `total_epochs` in the config only controls the number of training epochs and will not affect the validation workflow. 3. Workflows `[('train', 1), ('val', 1)]` and `[('train', 1)]` will not change the behavior of `EvalHook` because `EvalHook` is called by `after_train_epoch` and validation workflow only affect hooks that are called through `after_val_epoch`. Therefore, the only difference between `[('train', 1), ('val', 1)]` and `[('train', 1)]` is that the runner will calculate losses on validation set after each training epoch. +::: + ## Customize hooks ### Use hooks implemented in MMCV diff --git a/docs/useful_tools.md b/docs/useful_tools.md index b18fd89908..28f9a42efd 100644 --- a/docs/useful_tools.md +++ b/docs/useful_tools.md @@ -19,7 +19,9 @@ Params: 48.98 M ============================== ``` -**Note**: This tool is still experimental and we do not guarantee that the number is correct. You may well use the result for simple comparisons, but double check it before you adopt it in technical reports or papers. +:::{note} +This tool is still experimental and we do not guarantee that the number is correct. You may well use the result for simple comparisons, but double check it before you adopt it in technical reports or papers. +::: (1) FLOPs are related to the input shape while parameters are not. The default input shape is (1, 3, 1280, 800). (2) Some operators are not counted into FLOPs like GN and custom operators. @@ -74,7 +76,9 @@ Description of arguments: - `--dynamic-export`: Determines whether to export ONNX model with dynamic input and output shapes. If not specified, it will be set to `False`. - `--cfg-options`:Update config options. -**Note**: This tool is still experimental. Some customized operators are not supported for now. +:::{note} +This tool is still experimental. Some customized operators are not supported for now. +::: ### Evaluate ONNX model @@ -132,7 +136,9 @@ Description of all arguments | deeplabv3 | deeplabv3_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.5 | 78.3 | | | | deeplabv3+ | deeplabv3plus_r50-d8_769x769_40k_cityscapes.py | cityscapes | mIoU | 78.9 | 78.7 | | | -**Note**: TensorRT is only available on configs with `whole mode`. +:::{note} +TensorRT is only available on configs with `whole mode`. +::: ### Convert to TorchScript (experimental) @@ -158,9 +164,13 @@ Description of arguments: - `--show`: Determines whether to print the traced graph of the exported model. If not specified, it will be set to `False`. - `--verify`: Determines whether to verify the correctness of an exported model. If not specified, it will be set to `False`. -**Note**: It's only support PyTorch>=1.8.0 for now. +:::{note} +It's only support PyTorch>=1.8.0 for now. +::: -**Note**: This tool is still experimental. Some customized operators are not supported for now. +:::{note} +This tool is still experimental. Some customized operators are not supported for now. +::: Examples: @@ -211,7 +221,9 @@ Description of all arguments - `--verify` : Verify the outputs of ONNXRuntime and TensorRT. - `--verbose` : Whether to verbose logging messages while creating TensorRT engine. Defaults to False. -**Note**: Only tested on whole mode. +:::{note} +Only tested on whole mode. +::: ## Miscellaneous @@ -297,7 +309,9 @@ python tools/mmseg2torchserve.py ${CONFIG_FILE} ${CHECKPOINT_FILE} \ --model-name ${MODEL_NAME} ``` -**Note**: ${MODEL_STORE} needs to be an absolute path to a folder. +:::{note} +${MODEL_STORE} needs to be an absolute path to a folder. +::: ### 2. Build `mmseg-serve` docker image diff --git a/docs_zh-CN/_static/css/readthedocs.css b/docs_zh-CN/_static/css/readthedocs.css new file mode 100644 index 0000000000..2e38d0880b --- /dev/null +++ b/docs_zh-CN/_static/css/readthedocs.css @@ -0,0 +1,6 @@ +.header-logo { + background-image: url("../images/mmsegmentation.png"); + background-size: 201px 40px; + height: 40px; + width: 201px; +} diff --git a/docs_zh-CN/_static/images/mmsegmentation.png b/docs_zh-CN/_static/images/mmsegmentation.png new file mode 100644 index 0000000000000000000000000000000000000000..009083a9e80599a1893591ff362da377c94a0975 GIT binary patch literal 44728 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 literal 0 HcmV?d00001 diff --git a/docs_zh-CN/api.rst b/docs_zh-CN/api.rst index 9c14a67564..8285841dc6 100644 --- a/docs_zh-CN/api.rst +++ b/docs_zh-CN/api.rst @@ -1,6 +1,3 @@ -API Reference -============== - mmseg.apis -------------- .. automodule:: mmseg.apis diff --git a/docs_zh-CN/conf.py b/docs_zh-CN/conf.py index ed5eb523f7..f7f47bf8a9 100644 --- a/docs_zh-CN/conf.py +++ b/docs_zh-CN/conf.py @@ -15,6 +15,8 @@ import subprocess import sys +import pytorch_sphinx_theme + sys.path.insert(0, os.path.abspath('..')) # -- Project information ----------------------------------------------------- @@ -40,14 +42,13 @@ def get_version(): # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'recommonmark', - 'sphinx_markdown_tables', + 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', + 'sphinx_markdown_tables', 'sphinx_copybutton', 'myst_parser' ] -autodoc_mock_imports = ['matplotlib', 'pycocotools', 'mmseg.version'] +autodoc_mock_imports = [ + 'matplotlib', 'pycocotools', 'mmseg.version', 'mmcv.ops' +] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -73,14 +74,103 @@ def get_version(): # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +# html_theme = 'sphinx_rtd_theme' +html_theme = 'pytorch_sphinx_theme' +html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] +html_theme_options = { + # 'logo_url': 'https://mmsegmentation.readthedocs.io/en/latest/', + 'menu': [ + { + 'name': + 'Tutorial', + 'url': + 'https://github.com/open-mmlab/mmsegmentation/blob/master/' + 'demo/MMSegmentation_Tutorial.ipynb' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/mmsegmentation' + }, + { + 'name': + 'Upstream', + 'children': [ + { + 'name': 'MMCV', + 'url': 'https://github.com/open-mmlab/mmcv', + 'description': 'Foundational library for computer vision' + }, + ] + }, + { + 'name': + 'Projects', + 'children': [ + { + 'name': 'MMAction2', + 'url': 'https://github.com/open-mmlab/mmaction2', + }, + { + 'name': 'MMClassification', + 'url': 'https://github.com/open-mmlab/mmclassification', + }, + { + 'name': 'MMOCR', + 'url': 'https://github.com/open-mmlab/mmocr', + }, + { + 'name': 'MMDetection', + 'url': 'https://github.com/open-mmlab/mmdetection', + }, + { + 'name': 'MMEditing', + 'url': 'https://github.com/open-mmlab/mmediting', + }, + { + 'name': 'MMDetection3D', + 'url': 'https://github.com/open-mmlab/mmdetection3d', + }, + { + 'name': 'MMPose', + 'url': 'https://github.com/open-mmlab/mmpose', + }, + { + 'name': 'MMTracking', + 'url': 'https://github.com/open-mmlab/mmtracking', + }, + { + 'name': 'MMGeneration', + 'url': 'https://github.com/open-mmlab/mmgeneration', + }, + ] + }, + { + 'name': + 'OpenMMLab', + 'children': [ + { + 'name': 'Homepage', + 'url': 'https://openmmlab.com/' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/' + }, + ] + }, + ] +} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] +html_css_files = ['css/readthedocs.css'] + +# Enable ::: for my_st +myst_enable_extensions = ['colon_fence'] -language = 'zh_CN' +language = 'zh-CN' def builder_inited_handler(app): diff --git a/docs_zh-CN/tutorials/data_pipeline.md b/docs_zh-CN/tutorials/data_pipeline.md index 64d39934be..f3dfcd832a 100644 --- a/docs_zh-CN/tutorials/data_pipeline.md +++ b/docs_zh-CN/tutorials/data_pipeline.md @@ -9,7 +9,7 @@ 数据的准备流程和数据集是解耦的。通常一个数据集定义了如何处理标注数据(annotations)信息,而一个数据流程定义了准备一个数据字典的所有步骤。一个流程包括了一系列操作,每个操作里都把一个字典作为输入,然后再输出一个新的字典给下一个变换操作。 -这些操作可分为数据加载 (data loading),预处理 (pre-processing),格式变化 (formatting) 和测试时数据增强 (test-time augmentation) 。 +这些操作可分为数据加载 (data loading),预处理 (pre-processing),格式变化 (formatting) 和测试时数据增强 (test-time augmentation)。 下面的例子就是 PSPNet 的一个流程: diff --git a/requirements/docs.txt b/requirements/docs.txt index 866c4d323e..20170845c4 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,4 +1,6 @@ -recommonmark +docutils==0.16.0 +myst-parser +-e git+https://github.com/gaotongxiao/pytorch_sphinx_theme.git#egg=pytorch_sphinx_theme sphinx==4.0.2 +sphinx_copybutton sphinx_markdown_tables -sphinx_rtd_theme==0.5.2 diff --git a/setup.cfg b/setup.cfg index 6e88c113e2..75fcedc7cc 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = setuptools known_first_party = mmseg -known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,packaging,prettytable,pytest,scipy,seaborn,torch,ts +known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,packaging,prettytable,pytest,pytorch_sphinx_theme,scipy,seaborn,torch,ts no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY