Skip to content

Commit 871e7ac

Browse files
authored
[Doc] Fix invalid links and standardize Chinese and English punctuation marks at zh_CN faq.md (open-mmlab#2790)
1 parent 1dd6581 commit 871e7ac

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

docs/zh_cn/notes/faq.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# 常见问题解答(FAQ)
22

3-
我们在这里列出了使用时的一些常见问题及其相应的解决方案。 如果您发现有一些问题被遗漏,请随时提 PR 丰富这个列表。 如果您无法在此获得帮助,请使用 [issue模板](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/.github/ISSUE_TEMPLATE/error-report.md/)创建问题,但是请在模板中填写所有必填信息,这有助于我们更快定位问题。
3+
我们在这里列出了使用时的一些常见问题及其相应的解决方案。 如果您发现有一些问题被遗漏,请随时提 PR 丰富这个列表。 如果您无法在此获得帮助,请使用 [issue 模板](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/.github/ISSUE_TEMPLATE/error-report.md/)创建问题,但是请在模板中填写所有必填信息,这有助于我们更快定位问题。
44

55
## 安装
66

7-
兼容的MMSegmentation和MMCV版本如下。请安装正确版本的MMCV以避免安装问题
7+
兼容的 MMSegmentation 和 MMCV 版本如下。请安装正确版本的 MMCV 以避免安装问题
88

99
| MMSegmentation version | MMCV version | MMEngine version | MMClassification (optional) version | MMDetection (optional) version |
1010
| :--------------------: | :----------------------------: | :---------------: | :---------------------------------: | :----------------------------: |
@@ -18,44 +18,44 @@
1818
| 1.0.0rc1 | mmcv >= 2.0.0rc1, \<=2.0.0rc3> | MMEngine >= 0.1.0 | mmcls>=1.0.0rc0 | Not required |
1919
| 1.0.0rc0 | mmcv >= 2.0.0rc1, \<=2.0.0rc3> | MMEngine >= 0.1.0 | mmcls>=1.0.0rc0 | Not required |
2020

21-
如果您已经安装了版本不合适的 mmcv,请先运行`pip uninstall mmcv`卸载已安装的 mmcv,如您先前安装的为 mmcv-full(存在于 OpenMMLab 1.x),请运行`pip uninstall mmcv-full`进行卸载。
21+
如果您已经安装了版本不合适的 mmcv,请先运行`pip uninstall mmcv`卸载已安装的 mmcv,如您先前安装的为 mmcv-full存在于 OpenMMLab 1.x),请运行`pip uninstall mmcv-full`进行卸载。
2222

23-
- 如出现"No module named 'mmcv'";
24-
1. 使用`pip uninstall mmcv`卸载环境中现有的mmcv。
25-
2. 按照[安装说明](../get_started#best-practices)安装对应的mmcv。
23+
- 如出现 "No module named 'mmcv'"
24+
1. 使用`pip uninstall mmcv`卸载环境中现有的 mmcv
25+
2. 按照[安装说明](../get_started.md)安装对应的 mmcv
2626

2727
## 如何获知模型训练时需要的显卡数量
2828

29-
- 看模型的config文件的命名。可以参考[学习配置文件](../user_guides/1_config.md)中的`配置文件命名风格`部分。比如,对于名字为`segformer_mit-b0_8xb1-160k_cityscapes-1024x1024.py`的config文件`8xb1`代表训练其对应的模型需要的卡数为8,每张卡中的batch size为1
30-
- 看模型的log文件。点开该模型的log文件,并在其中搜索`nGPU`,在`nGPU`后的数字个数即训练时所需的卡数。比如,在log文件中搜索`nGPU`得到`nGPU 0,1,2,3,4,5,6,7`的记录,则说明训练该模型需要使用八张卡。
29+
- 看模型的 config 文件命名。可以参考[了解配置文件](../user_guides/1_config.md)中的`配置文件命名风格`部分。比如,对于名字为`segformer_mit-b0_8xb1-160k_cityscapes-1024x1024.py`的 config 文件`8xb1`代表训练其对应的模型需要的卡数为 8,每张卡中的 batch size 为 1
30+
- 看模型的 log 文件。点开该模型的 log 文件,并在其中搜索`nGPU`,在`nGPU`后的数字个数即训练时所需的卡数。比如,在 log 文件中搜索`nGPU`得到`nGPU 0,1,2,3,4,5,6,7`的记录,则说明训练该模型需要使用八张卡。
3131

3232
## auxiliary head 是什么
3333

34-
简单来说,这是一个提高准确率的深度监督技术。在训练阶段,`decode_head` 用于输出语义分割的结果,`auxiliary_head` 只是增加了一个辅助损失,其产生的分割结果对你的模型结果没有影响,仅在在训练中起作用。您可以阅读这篇[论文](https://arxiv.org/pdf/1612.01105.pdf)了解更多信息。
34+
简单来说,这是一个提高准确率的深度监督技术。在训练阶段,`decode_head`用于输出语义分割的结果,`auxiliary_head` 只是增加了一个辅助损失,其产生的分割结果对你的模型结果没有影响,仅在在训练中起作用。您可以阅读这篇[论文](https://arxiv.org/pdf/1612.01105.pdf)了解更多信息。
3535

3636
## 运行测试脚本时如何输出绘制分割掩膜的图像
3737

38-
在测试脚本中,我们提供了`--out`参数来控制是否输出保存预测的分割掩膜图像。您可以运行以下命令输出测试结果:
38+
在测试脚本中,我们提供了`--out`参数来控制是否输出保存预测的分割掩膜图像。您可以运行以下命令输出测试结果
3939

4040
```shell
4141
python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} --out ${OUTPUT_DIR}
4242
```
4343

44-
更多用例细节可查阅[文档](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/docs/zh_cn/user_guides/4_train_test.md#%E6%B5%8B%E8%AF%95%E5%B9%B6%E4%BF%9D%E5%AD%98%E5%88%86%E5%89%B2%E7%BB%93%E6%9E%9C)[PR #2712](https://github.com/open-mmlab/mmsegmentation/pull/2712)以及[迁移文档](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/docs/zh_cn/migration/interface.md#%E6%B5%8B%E8%AF%95%E5%90%AF%E5%8A%A8)了解相关说明
44+
更多用例细节可查阅[文档](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/docs/zh_cn/user_guides/4_train_test.md#%E6%B5%8B%E8%AF%95%E5%B9%B6%E4%BF%9D%E5%AD%98%E5%88%86%E5%89%B2%E7%BB%93%E6%9E%9C)[PR #2712](https://github.com/open-mmlab/mmsegmentation/pull/2712) 以及[迁移文档](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/docs/zh_cn/migration/interface.md#%E6%B5%8B%E8%AF%95%E5%90%AF%E5%8A%A8)了解相关说明
4545

4646
## 如何处理二值分割任务?
4747

48-
MMSegmentation 使用 `num_classes``out_channels` 来控制模型最后一层 `self.conv_seg` 的输出. 更多细节可以参考 [这里](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/mmseg/models/decode_heads/decode_head.py).
48+
MMSegmentation 使用 `num_classes``out_channels` 来控制模型最后一层 `self.conv_seg` 的输出更多细节可以参考 [这里](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/mmseg/models/decode_heads/decode_head.py)
4949

50-
`num_classes` 应该和数据集本身类别个数一致,当是二值分割时,数据集只有前景和背景两类, 所以 `num_classes` 为 2. `out_channels` 控制模型最后一层的输出的通道数,通常和 `num_classes` 相等, 但当二值分割时候, 可以有两种处理方法, 分别是:
50+
`num_classes` 应该和数据集本身类别个数一致,当是二值分割时,数据集只有前景和背景两类所以 `num_classes` 为 2. `out_channels` 控制模型最后一层的输出的通道数,通常和 `num_classes` 相等但当二值分割时候可以有两种处理方法, 分别是:
5151

52-
- 设置 `out_channels=2`, 在训练时以 Cross Entropy Loss 作为损失函数, 在推理时使用 `F.softmax()` 归一化 logits 值, 然后通过 `argmax()` 得到每个像素的预测结果.
52+
- 设置 `out_channels=2`在训练时以 Cross Entropy Loss 作为损失函数在推理时使用 `F.softmax()` 归一化 logits 值然后通过 `argmax()` 得到每个像素的预测结果
5353

54-
- 设置 `out_channels=1`, 在训练时以 Binary Cross Entropy Loss 作为损失函数, 在推理时使用 `F.sigmoid()``threshold` 得到预测结果, `threshold` 默认为 0.3.
54+
- 设置 `out_channels=1`在训练时以 Binary Cross Entropy Loss 作为损失函数在推理时使用 `F.sigmoid()``threshold` 得到预测结果`threshold` 默认为 0.3
5555

56-
对于实现上述两种计算二值分割的方法, 需要在 `decode_head``auxiliary_head` 的配置里修改. 下面是对样例 [pspnet_unet_s5-d16.py](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/configs/_base_/models/pspnet_unet_s5-d16.py) 做出的对应修改.
56+
对于实现上述两种计算二值分割的方法需要在 `decode_head``auxiliary_head` 的配置里修改下面是对样例 [pspnet_unet_s5-d16.py](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/configs/_base_/models/pspnet_unet_s5-d16.py) 做出的对应修改
5757

58-
- (1) `num_classes=2`, `out_channels=2` 并在 `CrossEntropyLoss` 里面设置 `use_sigmoid=False`.
58+
- (1) `num_classes=2`, `out_channels=2` 并在 `CrossEntropyLoss` 里面设置 `use_sigmoid=False`
5959

6060
```python
6161
decode_head=dict(
@@ -99,7 +99,7 @@ auxiliary_head=dict(
9999

100100
## `reduce_zero_label` 的作用
101101

102-
数据集中 `reduce_zero_label` 参数类型为布尔类型, 默认为 False, 它的功能是为了忽略数据集 label 0. 具体做法是将 label 0 改为 255, 其余 label 相应编号减 1, 同时 decode head 里将 255 设为 ignore index, 即不参与 loss 计算.
102+
数据集中 `reduce_zero_label` 参数类型为布尔类型默认为 False它的功能是为了忽略数据集 label 0具体做法是将 label 0 改为 255其余 label 相应编号减 1同时 decode head 里将 255 设为 ignore index即不参与 loss 计算
103103
以下是 `reduce_zero_label` 具体实现逻辑:
104104

105105
```python
@@ -110,9 +110,9 @@ if self.reduce_zero_label:
110110
gt_semantic_seg[gt_semantic_seg == 254] = 255
111111
```
112112

113-
关于您的数据集是否需要使用reduce_zero_label,有以下两类情况:
113+
关于您的数据集是否需要使用 reduce_zero_label,有以下两类情况:
114114

115-
- 例如在Potsdam数据集上,有 0-不透水面、1-建筑、2-低矮植被、3-树、4-汽车、5-杂乱,六类。但该数据集提供了两种RGB标签,一种为图像边缘处有黑色像素的标签,另一种是没有黑色边缘的标签。对于有黑色边缘的标签,在 [dataset_converters.py](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/tools/dataset_converters/potsdam.py)中,其将黑色边缘转换为label 0,其余标签分别为 1-不透水面、2-建筑、3-低矮植被、4-树、5-汽车、6-杂乱,那么此时,就应该在数据集[potsdam.py](https://github.com/open-mmlab/mmsegmentation/blob/ff95416c3b5ce8d62b9289f743531398efce534f/mmseg/datasets/potsdam.py#L23)中将`reduce_zero_label=True`。如果使用的是没有黑色边缘的标签,那么mask label中只有0-5,此时就应该使`reduce_zero_label=False`。需要结合您的实际情况来使用。
116-
- 例如在第0类为background类别的数据集上,如果您最终是需要将背景和您的其余类别分开时,是不需要使用`reduce_zero_label`的,此时在数据集中应该将其设置为`reduce_zero_label=False`
115+
- 例如在 [Potsdam](https://github.com/open-mmlab/mmsegmentation/blob/1.x/docs/en/user_guides/2_dataset_prepare.md#isprs-potsdam) 数据集上,有 0-不透水面、1-建筑、2-低矮植被、3-树、4-汽车、5-杂乱,六类。但该数据集提供了两种RGB标签,一种为图像边缘处有黑色像素的标签,另一种是没有黑色边缘的标签。对于有黑色边缘的标签,在 [dataset_converters.py](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/tools/dataset_converters/potsdam.py)中,其将黑色边缘转换为 label 0,其余标签分别为 1-不透水面、2-建筑、3-低矮植被、4-树、5-汽车、6-杂乱,那么此时,就应该在数据集 [potsdam.py](https://github.com/open-mmlab/mmsegmentation/blob/ff95416c3b5ce8d62b9289f743531398efce534f/mmseg/datasets/potsdam.py#L23) 中将`reduce_zero_label=True`。如果使用的是没有黑色边缘的标签,那么 mask label 中只有 0-5,此时就应该使`reduce_zero_label=False`。需要结合您的实际情况来使用。
116+
- 例如在第 0 类为background类别的数据集上,如果您最终是需要将背景和您的其余类别分开时,是不需要使用`reduce_zero_label`的,此时在数据集中应该将其设置为`reduce_zero_label=False`
117117

118-
**注意:** 使用 `reduce_zero_label` 请确认数据集原始类别个数, 如果只有两类, 需要关闭 `reduce_zero_label` 即设置 `reduce_zero_label=False`.
118+
**注意:** 使用 `reduce_zero_label` 请确认数据集原始类别个数如果只有两类需要关闭 `reduce_zero_label` 即设置 `reduce_zero_label=False`

0 commit comments

Comments
 (0)