配置文件 .yml 写法小结

本文介绍了YAML配置文件的基本概念和编写规则,对比JSON突出了YAML的简洁性和易读性,并通过实例展示了对象、数组等数据结构的定义方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置文件 .yml 写法小结

yaml

yaml

yaml 是什么?

在 github 一些开源项目里经常可以看到 .travis.yml 文件,后来接触持续集成这个概念时发现很多文件都是 .yml 后缀的文件。我在 阮一峰-YAML 语言教程 里了解了它的作用以及基本写法,他的那篇文章描述的略微有点啰嗦,实际看到的大多数配置文件还是及其简单的,而我们要做的是能读懂它们,就像读懂 .json 一样。

yaml 语言(或者说是一种规范吧)可以编写 .yml 文件,和 json 一样是配置文件。也许是有人认为 json 的写法不爽,于是乎发明了这玩意,通过下面的例子,可以看到 yaml 写的配置文件确实要比 json 方便很多。

编写规则

  • 大小写敏感

json 里也是大小写敏感的,这点二者一样。

  • 使用缩进表示层级关系

json 中使用 {} 的嵌套表示层级,而 yaml 使用缩进,后者更方便一些。

  • # 表示注释

json 文件中不允许写注释,对于很长配置文件全靠字面意思猜挺痛快的,yaml 可以写注释,:100:

数据结构

配置文件理应十分简洁,与 json 相比,不用频繁的写 {} 和 [],毕竟换行和 - 符号更加简洁,字符串也不需要频繁的加引号(无论是单引号还是双引号)。

对象

# conf.yml
animal: pets
hash: { name: Steve, foo: bar }

转换为 json 为:

{
    { "animal": "pets" },
    { "hash": { "name": "Steve", "foo": "bar" } }
}

数组

# conf.yml
Animal:
 - Cat
 - Dog
 - Goldfish

转换为 json 为:

{ "Animal": [ "Cat", "Dog", "Goldfish" ] }

字符串

# conf.yml
# 正常情况下字符串不用写引号
str: 这是一行字符串
# 字符串内有空格或者特殊字符时需要加引号
str: '内容: 字符串'

null

# conf.yml
parent: ~

.yml 中 ~ 表示 null,转换为 json 为:

{ "parent": null }
<think>我们正在处理用户关于PPOCR配置文件`config.yml`位置的问题。根据之前的对话历史,用户遇到了PPOCR服务日志显示`cls num 0`和`rec_res num 0`的问题,我们给出了分析,现在用户询问配置文件的位置。 在PPOCR(PaddleOCR)中,配置文件`config.yml`通常位于项目目录的特定位置,具体取决于用户安装和部署的方式。以下是常见的几种情况: 1. **从官方GitHub仓库克隆的情况**: - 如果用户是通过`git clone`获取的PPOCR代码,那么配置文件通常位于项目根目录下的`configs`文件夹中。例如: ``` PaddleOCR/configs/ ├── cls ├── det ├── rec └── system.yml # 在较新版本中,可能使用system.yml代替config.yml ``` 注意:在较新版本中,配置文件可能命名为`system.yml`,并且位于`configs`目录下的各个子目录(如`det`、`rec`、`cls`)中分别有对应的配置文件。 2. **通过pip安装的情况**: - 如果用户是通过`pip install paddleocr`安装的,那么配置文件通常不会直接出现在用户的文件系统中,因为它们被封装在Python包的安装目录中。用户可以通过以下方式找到配置文件的位置: - 首先,找到PaddleOCR模块的安装路径。在Python中执行: ```python import paddleocr print(paddleocr.__file__) ``` 这将打印出`__init__.py`文件的路径,然后配置文件通常位于该路径的父目录下的`config`文件夹中。例如: ``` /usr/local/lib/python3.7/dist-packages/paddleocr/config/ ``` 或者 ``` /home/username/.local/lib/python3.8/site-packages/paddleocr/config/ ``` 3. **使用预训练模型进行推理的情况**: - 当用户下载预训练模型时,每个模型文件夹中通常包含一个配置文件(如`inference.yml`或`config.yml`),用于模型加载和预处理参数。例如: ``` ch_ppocr_mobile_v2.0_det_infer/ ├── inference.pdiparams ├── inference.pdmodel └── inference.yml # 配置文件 ``` 4. **自定义训练的情况**: - 如果用户进行了自定义训练,那么配置文件通常位于用户指定的训练配置目录中,一般在训练命令中通过`-c`参数指定。例如: ```bash python3 tools/train.py -c configs/det/det_mv3_db.yml ``` **总结**: - 对于源码用户:`PaddleOCR/configs/`目录下。 - 对于pip安装用户:在Python包的安装目录下的`config`文件夹中(可通过`print(paddleocr.__file__)`定位)。 - 对于模型目录:每个下载的预训练模型文件夹中通常有一个配置文件(如`inference.yml`)。 如果用户需要修改配置文件,建议根据使用场景确定配置文件的位置。例如,在服务部署中,通常需要修改模型对应的配置文件(如`inference.yml`)以调整预处理参数。 §§相关问题§§ 1. 如何修改PPOCR的配置文件以支持自定义模型? 2. 在PPOCR中,配置文件中的参数分别代表什么含义? 3. 如何在不同部署方式(如Docker、本地pip安装)中找到配置文件?</think>### PPOCR `config.yml` 配置文件位置 根据不同的部署方式配置文件位置如下: #### 1. **源码部署(Git克隆)** ```bash PaddleOCR/configs/ ├── cls/ # 文本方向分类模型配置 ├── det/ # 文本检测模型配置 ├── rec/ # 文本识别模型配置 └── system.yml # 主配置文件(新版本) ``` - 主配置文件路径: `$PaddleOCR/configs/system.yml`(新版本) 或历史版本:`$PaddleOCR/configs/ocr_system.yml` #### 2. **PIP包安装部署** ```python import paddleocr print(paddleocr.__file__) # 输出示例:/usr/local/lib/python3.8/site-packages/paddleocr/__init__.py ``` 配置文件位于: `$PYTHON_PATH/site-packages/paddleocr/config/` 包含: ```bash config/ ├── cls.yaml ├── det.yaml ├── rec.yaml └── system.yaml ``` #### 3. **Docker容器部署** ```bash docker exec -it ppocr_container ls /opt/paddleocr/configs # 典型输出: # cls.yaml det.yaml rec.yaml system.yaml ``` #### 4. **预训练模型目录** 当使用自定义模型时,配置文件与模型文件同级: ```bash inference/ └── ch_PP-OCRv4_det_infer/ ├── inference.pdiparams ├── inference.pdmodel └── inference.yml # 模型专用配置 ``` ### 配置验证方法 ```python from paddleocr import PaddleOCR # 打印默认配置路径 ocr = PaddleOCR(use_angle_cls=True) print(ocr.cls_model_dir) # 显示分类模型路径(含配置) print(ocr.rec_model_dir) # 显示识别模型路径 ``` ### 配置修改建议 1. **调整预处理参数**(解决检测失败问题): ```yaml # system.yaml 片段 PreProcess: transform_ops: - DetResize: limit_side_len: 960 # 调整图像长边限制 limit_type: 'max' ``` 2. **修改置信度阈值**(解决`rec_res num 0`): ```yaml PostProcess: RecPostProcess: threshold: 0.3 # 默认0.5,降低可增加识别结果 ``` 3. **启用调试日志**: ```yaml Global: debug: true # 输出详细处理流程 ``` [^1]: 配置路径可能因版本变化调整,建议通过`print(PaddleOCR.__init__.__code__.co_filename)`定位安装目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值