@@ -16,7 +16,7 @@ assignees: ''
## 描述问题
-## 复现
+## 复现
1. 您是否已经正常运行我们提供的[教程](https://github.com/PaddlePaddle/PaddleX/tree/develop/tutorials)?
@@ -1,3 +1,3 @@
[style]
based_on_style = pep8
-column_limit = 80
+column_limit = 80
@@ -167,4 +167,3 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-
@@ -125,7 +125,7 @@ PaddleX 3.0 覆盖了 16 条产业级模型产线,其中 9 条基础产线可
<td>时序预测</td>
<td>DLinear<br/>Nonstationary<br/>TiDE<br/>PatchTST<br/>TimesNet</td>
- </tr>
+ </tr>
<tr>
<td>基础产线</td>
<td>时序异常检测</td>
@@ -160,7 +160,7 @@ PaddleX 3.0 覆盖了 16 条产业级模型产线,其中 9 条基础产线可
<td>大模型半监督学习-文本识别</td>
<td>PP-OCRv4_mobile_rec<br/>PP-OCRv4_server_rec</td>
<td rowspan="3">特色产线</td>
<td rowspan="3">通用场景信息抽取v2<br>(PP-ChatOCRv2-common)</td>
@@ -202,13 +202,13 @@ PaddleX 3.0 覆盖了 16 条产业级模型产线,其中 9 条基础产线可
<td>多模型融合时序预测v2<br>(PP-TSv2_forecast)</td>
<td>多模型融合时序预测</td>
<td>特色产线</td>
<td>多模型融合时序异常检测v2<br>(PP-TSv2_anomaly)</td>
<td>多模型融合时序异常检测</td>
</table>
@@ -44,7 +44,7 @@ PaddleX 3.0beta 集成了飞桨生态的优势能力,覆盖 7 大场景任务
### PaddleX v2.0.0rc0(5.19/2021)
* 全面支持飞桨2.0动态图,更易用的开发模式
-* 目标检测任务新增[PP-YOLOv2](https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/tutorials/train/object_detection/ppyolov2.py), COCO test数据集精度达到49.5%、V100预测速度达到68.9 FPS
+* 目标检测任务新增[PP-YOLOv2](https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/tutorials/train/object_detection/ppyolov2.py), COCO test数据集精度达到49.5%、V100预测速度达到68.9 FPS
* 目标检测任务新增4.2MB的超轻量级模型[PP-YOLO tiny](https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/tutorials/train/object_detection/ppyolotiny.py)
* 语义分割任务新增实时分割模型[BiSeNetV2](https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/tutorials/train/semantic_segmentation/bisenetv2.py)
* C++部署模块全面升级
@@ -57,7 +57,7 @@ PaddleX 3.0beta 集成了飞桨生态的优势能力,覆盖 7 大场景任务
### PaddleX v1.3.0(12.19/2020)
- 模型更新
- > - 图像分类模型ResNet50_vd新增10万分类预训练模型
+ > - 图像分类模型ResNet50_vd新增10万分类预训练模型
> - 目标检测模型FasterRCNN新增模型裁剪支持
> - 目标检测模型新增多通道图像训练支持
@@ -125,5 +125,3 @@ PaddleX 3.0beta 集成了飞桨生态的优势能力,覆盖 7 大场景任务
- **易用易集成**
- 统一易用的全流程API,5步完成模型训练,10行代码实现Python/C++高性能部署。
- 提供以PaddleX为核心集成的跨平台可视化工具PaddleX-GUI,快速体验飞桨深度学习全流程。
@@ -1,5 +1,5 @@
# 数据标注指南
-本文档将介绍如何使用 [PPOCRLabel](https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/PPOCRLabel/README_ch.md) 完成 PP-OCR 单模型和表格识别的数据标注。
+本文档将介绍如何使用 [PPOCRLabel](https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/PPOCRLabel/README_ch.md) 完成 PP-OCR 单模型和表格识别的数据标注。
点击上述链接,参考首页文档即可安装数据标注工具并查看详细使用流程,以下提供简洁版本说明:
@@ -129,7 +129,7 @@ python main.py -c paddlex/configs/object_detection/PicoDet-S.yaml \
"dataset_path": "./dataset/det_coco_examples",
"show_type": "image",
"dataset_type": "COCODetDataset"
-}
+}
```
上述校验结果中,check_pass 为 True 表示数据集格式符合要求,其他部分指标的说明如下:
@@ -493,7 +493,7 @@ tar -xf ./dataset/ocr_rec_latexocr_dataset_example.tar -C ./dataset/
```bash
python main.py -c paddlex/configs/formula_recognition/LaTeX_OCR_rec.yaml \
-o Global.mode=check_dataset \
- -o Global.dataset_dir=./dataset/ocr_rec_latexocr_dataset_example
+ -o Global.dataset_dir=./dataset/ocr_rec_latexocr_dataset_example
执行上述命令后,PaddleX 会对数据集进行校验,并统计数据集的基本信息。命令运行成功后会在log中打印出 `Check dataset passed !` 信息,同时相关产出会保存在当前目录的 `./output/check_dataset` 目录下,产出目录中包括可视化的示例样本图片和样本分布直方图。校验结果文件保存在 `./output/check_dataset_result.json`,校验结果文件具体内容为
@@ -27,13 +27,13 @@ dataset_dir # 数据集根目录,目录名称可以改变
如果您已有数据集且数据集格式为如下格式,但是没有标注文件,可以使用[脚本](https://paddleclas.bj.bcebos.com/tools/create_cls_trainval_lists.py)将已有的数据集生成标注文件。
```plain
-dataset_dir # 数据集根目录,目录名称可以改变
+dataset_dir # 数据集根目录,目录名称可以改变
├── images # 图像的保存目录,目录名称可以改变
├── train # 训练集目录,目录名称可以改变
├── class0 # 类名字,最好是有意义的名字,否则生成的类别映射文件label.txt无意义
├── xxx.jpg # 图片,此处支持层级嵌套
- ...
+ ...
├── class1 # 类名字,最好是有意义的名字,否则生成的类别映射文件label.txt无意义
...
├── val # 验证集目录,目录名称可以改变
@@ -201,7 +201,7 @@ dataset_dir # 数据集根目录,目录名称可以改变
PaddleX 针对长时序预测任务定义的数据集,名称是**TSDataset**,组织结构和标注格式如下。
├── train.csv # 训练集标注文件,文件名称不可改变。表头是每列的列名称,每一行是某一个时间点采集的数据。
├── val.csv # 验证集标注文件,文件名称不可改变。表头是每列的列名称,每一行是某一个时间点采集的数据。
└── test.csv # 测试集标注文件(可选),文件名称不可改变。表头是每列的列名称,每一行是某一个时间点采集的数据。
@@ -25,7 +25,7 @@ PaddleX 提供了丰富的模型产线,模型产线由一个或多个模型组
**注:** 通用 OCR 产线是一个多模型串联的产线,包含文本检测模型(如 `PP-OCRv4_mobile_det`)和文本识别模型(如 `PP-OCRv4_mobile_rec`),因此需要指定两个模型进行体验。
- 星河社区体验方式:前往[AI Studio 星河社区](https://aistudio.baidu.com/pipeline/mine),点击【创建产线】,创建**通用 OCR** 产线进行快速体验;
-- 3.【**选择模型**】(可选)当体验完该产线之后,需要确定产线是否符合预期(包含精度、速度等),产线包含的模型是否需要继续微调,如果模型的速度或者精度不符合预期,则需要根据[模型选择](./model_select.md)选择可替换的模型继续测试,确定效果是否满意。如果最终效果均不满意,则需要微调模型。在确定微调的模型时,需要根据测试的情况确定微调其中的哪个模型,如发现文字的定位不准,则需要微调文本检测模型,如果发现文字的识别不准,则需要微调文本识别模型。
+- 3.【**选择模型**】(可选)当体验完该产线之后,需要确定产线是否符合预期(包含精度、速度等),产线包含的模型是否需要继续微调,如果模型的速度或者精度不符合预期,则需要根据[模型选择](./model_select.md)选择可替换的模型继续测试,确定效果是否满意。如果最终效果均不满意,则需要微调模型。在确定微调的模型时,需要根据测试的情况确定微调其中的哪个模型,如发现文字的定位不准,则需要微调文本检测模型,如果发现文字的识别不准,则需要微调文本识别模型。
- 4.【**模型微调**】(可选)在第 3 步选择好对应的模型后,即可使用**单模型开发工具**以低代码的方式进行模型微调训练和优化,如此处需要优化文本识别模型(`PP-OCRv4_mobile_rec`),则只需要完成【数据校验】和【模型训练】,二者命令如下:
@@ -44,7 +44,7 @@ result = pipeline.predict(
{'input_path': "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg"}
)
print(result["cls_result"])
-```
+```
### 2.2 通用目标检测产线
@@ -20,7 +20,7 @@ result = pipeline.predict(
如上代码所示,具体来说需要简单几步:1. 实例化 `PaddleInferenceOption` 进行推理相关设置;2. 实例化模型产线对象;3. 调用模型产线对象的 `predict` 方法进行推理预测。
@@ -160,7 +160,7 @@ PaddleX 中每个模型都提供了模型开发的配置文件,用于设置相
- 模型训练过程中,PaddleX 会自动保存模型权重文件,默认为`output`,如需指定保存路径,可通过配置文件中 `-o Global.output` 字段
- PaddleX 对您屏蔽了动态图权重和静态图权重的概念。在模型训练的过程中,会同时产出动态图和静态图的权重,在模型推理时,默认选择静态图权重推理。
-**训练产出解释:**
+**训练产出解释:**
在完成模型训练后,所有产出保存在指定的输出目录(默认为`./output/`)下,通常有以下产出:
@@ -250,7 +250,7 @@ result = pipeline.predict(
2. PaddleX也提供了基于 FastDeploy 的高性能推理/服务化部署的方式进行模型部署。该部署方案支持更多的推理后端,并且提供高性能推理和服务化部署两种部署方式,能够满足更多场景的需求,具体流程可参考 [基于 FastDeploy 的模型产线部署]((../pipelines/pipeline_deployment_with_fastdeploy.md))。高性能推理和服务化部署两种部署方式的特点如下:
* 高性能推理:运行脚本执行推理,或在程序中调用 Python/C++ 的推理 API。旨在实现测试样本的高效输入与模型预测结果的快速获取,特别适用于大规模批量刷库的场景,显著提升数据处理效率。
* 服务化部署:采用 C/S 架构,以服务形式提供推理能力,客户端可以通过网络请求访问服务,以获取推理结果。
@@ -155,7 +155,7 @@ PaddleX 中每个模型都提供了模型开发的配置文件,用于设置相
@@ -246,7 +246,7 @@ result = pipeline.predict(
print(result["boxes"])
@@ -92,7 +92,7 @@ python main.py -c paddlex/configs/object_detection/PP-YOLOE_plus-S.yaml \
"dataset_path": "./dataset/fall_det",
@@ -159,7 +159,7 @@ PaddleX 中每个模型都提供了模型开发的配置文件,用于设置相
@@ -249,7 +249,7 @@ result = pipeline.predict(
@@ -92,7 +92,7 @@ python main.py -c paddlex/configs/object_detection/PicoDet-L.yaml \
"dataset_path": "./dataset/det_mini_fashion_pedia_coco",
@@ -35,8 +35,8 @@ PaddleX 提供了 2 个端到端的文本检测模型,具体可参考 [模型
| 模型列表 | 检测Hmean(%) | 识别 Avg Accuracy(%) | GPU 推理耗时(ms) | CPU 推理耗时(ms) | 模型存储大小(M) |
| --------------- | ----------- | ------------------- | --------------- | --------------- |---------------|
-| PP-OCRv4_server | 82.69 | 79.20 | 22.20346 | 2662.158 | 198 |
-| PP-OCRv4_mobile | 77.79 | 78.20 | 2.719474 | 79.1097 | 15 |
+| PP-OCRv4_server | 82.69 | 79.20 | 22.20346 | 2662.158 | 198 |
+| PP-OCRv4_mobile | 77.79 | 78.20 | 2.719474 | 79.1097 | 15 |
**注:以上精度指标为 PaddleOCR 自建中文数据集验证集 检测Hmean 和 识别 Avg Accuracy,GPU 推理耗时基于 NVIDIA Tesla T4 机器,精度类型为 FP32, CPU 推理速度基于 Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz,线程数为 8,精度类型为 FP32。**
简单来说,表格从上到下,模型推理速度更快,从下到上,模型精度更高。本教程以 `PP-OCRv4_server` 模型为例,完成一次模型全流程开发。你可以依据自己的实际使用场景,判断并选择一个合适的模型做训练,训练完成后可在产线内评估合适的模型权重,并最终用于实际使用场景中。
@@ -164,7 +164,7 @@ PaddleX 中每个模型都提供了模型开发的配置文件,用于设置相
@@ -200,21 +200,21 @@ python main.py -c paddlex/configs/text_detection/PP-OCRv4_server_det.yaml \
学习率探寻实验结果:
<center>
-| 实验ID | 学习率 | 检测Hmean(%)|
+| 实验ID | 学习率 | 检测Hmean(%)|
|-----------|-----|-------|
-|1 | 0.00005 | 99.06|
-|2 | 0.0001 | 99.55|
-|3 | 0.0005 | 99.60|
-|4 | 0.001 | 99.70|
+|1 | 0.00005 | 99.06|
+|2 | 0.0001 | 99.55|
+|3 | 0.0005 | 99.60|
+|4 | 0.001 | 99.70|
</center>
接下来,我们可以在学习率设置为 0.001 的基础上,增加训练轮次,对比下面实验 [4,5] 可知,训练轮次增大,模型精度有了进一步的提升。
-| 实验ID | 训练轮次 | 检测 Hmean(%) |
+| 实验ID | 训练轮次 | 检测 Hmean(%) |
-| 4 | 10 | 99.70 |
-| 5 | 20 | 99.80 |
+| 4 | 10 | 99.70 |
+| 5 | 20 | 99.80 |
**注:本教程为 4 卡教程,如果您只有 1 张 GPU,可通过调整训练卡数完成本次实验,但最终指标未必和上述指标对齐,属正常情况。**
@@ -256,7 +256,7 @@ result = pipeline.predict(
print(result["dt_polys"])
@@ -35,8 +35,8 @@ PaddleX 提供了 2 个端到端的OCR模型,具体可参考 [模型列表](..
-|PP-OCRv4_server | 82.69 | 79.20 | 22.20346 | 2662.158 | 198|
-|PP-OCRv4_mobile | 77.79 | 78.20 | 2.719474 | 79.1097 | 15|
+|PP-OCRv4_server | 82.69 | 79.20 | 22.20346 | 2662.158 | 198|
+|PP-OCRv4_mobile | 77.79 | 78.20 | 2.719474 | 79.1097 | 15|
**注:评估集是 PaddleOCR 自建的中文数据集,覆盖街景、网图、文档、手写多个场景,其中文本识别包含1.1w张图片,检测包含500张图片。GPU 推理耗时基于 NVIDIA Tesla T4 机器,精度类型为 FP32, CPU 推理速度基于 Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz,线程数为 8,精度类型为 FP32**
@@ -200,23 +200,23 @@ python main.py -c paddlex/configs/text_recognition/PP-OCRv4_server_rec.yaml \
-| 实验ID | 学习率 | 识别 Acc (%)|
+| 实验ID | 学习率 | 识别 Acc (%)|
-|1 | 0.001 | 43.28|
-|2 | 0.005 | 32.63|
-|3 | 0.0002 | 49.64|
-|4 | 0.0001 | 46.32|
+|1 | 0.001 | 43.28|
+|2 | 0.005 | 32.63|
+|3 | 0.0002 | 49.64|
+|4 | 0.0001 | 46.32|
接下来,我们可以在学习率设置为 0.0002 的基础上,增加训练轮次,对比下面实验 [4, 5, 6, 7] 可知,训练轮次增大,模型精度有了进一步的提升。
-| 实验ID | 训练轮次 | 识别 Acc (%) |
+| 实验ID | 训练轮次 | 识别 Acc (%) |
-| 4 | 20 | 49.64|
-| 5 | 30 | 52.03|
-| 6 | 50 | 54.15|
-| 7 | 80 | 54.35|
+| 4 | 20 | 49.64|
+| 5 | 30 | 52.03|
+| 6 | 50 | 54.15|
+| 7 | 80 | 54.35|
@@ -259,7 +259,7 @@ result = pipeline.predict(
print(result["rec_text"])
@@ -88,7 +88,7 @@ python main.py -c paddlex/configs/semantic_segmentation/PP-LiteSeg-T.yaml \
"dataset_path": "./dataset/semantic-segmentation-makassaridn-road-dataset",
print(result.keys())
@@ -33,11 +33,11 @@ PaddleX 提供了5个端到端的时序异常检测模型,具体可参考 [模
| 模型列表 | precision | recall | f1_score | 模型存储大小 |
|:--------------|:---------:|:------:|:--------:|:---------:|
-| DLinear_ad | 0.904 | 0.891 | 0.897 | 0.9M |
-| Nonstationary_ad | 0.901 | 0.938 | 0.918 | 19.1MB |
-| AutoEncoder_ad | 0.897 | 0.860 | 0.876 | 0.4M |
-| PatchTST_ad | 0.900 | 0.925 | 0.913 | 2.1M |
-| TimesNet_ad | 0.899 | 0.935 | 0.917 | 5.4M |
+| DLinear_ad | 0.904 | 0.891 | 0.897 | 0.9M |
+| Nonstationary_ad | 0.901 | 0.938 | 0.918 | 19.1MB |
+| AutoEncoder_ad | 0.897 | 0.860 | 0.876 | 0.4M |
+| PatchTST_ad | 0.900 | 0.925 | 0.913 | 2.1M |
+| TimesNet_ad | 0.899 | 0.935 | 0.917 | 5.4M |
@@ -149,7 +149,7 @@ python main.py -c paddlex/configs/ts_anomaly_detection/PatchTST_ad.yaml \
-o Train.feature_cols=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54 \
-o Train.freq=1 \
-o Train.label_col=label \
- -o Train.seq_len=96
+ -o Train.seq_len=96
在 PaddleX 中模型训练支持:修改训练超参数、单机单卡训练(时序模型仅支持单卡训练)等功能,只需修改配置文件或追加命令行参数。
@@ -177,7 +177,7 @@ PaddleX 中每个模型都提供了模型开发的配置文件,用于设置相
@@ -249,7 +249,7 @@ python main.py -c paddlex/configs/ts_anomaly_detection/PatchTST_ad.yaml \
## 7. 部署
+
PaddleX 针对时序分析模型提供了 本地推理部署/服务化部署的方式进行模型部署。目前时序部署方案为动态图部署,提供本地推理和服务化部署两种部署方式,能够满足更多场景的需求。本地部署和服务化部署两种部署方式的特点如下:
* 本地部署:运行脚本执行推理,或在程序中调用 Python 的推理 API。旨在实现测试样本的高效输入与模型预测结果的快速获取,特别适用于大规模批量刷库的场景,显著提升数据处理效率。
@@ -33,7 +33,7 @@ PaddleX 提供了1个端到端的时序分类模型,具体可参考 [模型列
| 模型列表 | acc(%) | 模型存储大小(M) |
|:--------------|:------:|:---------:|
-| TimesNet_cls | 87.5 | 5.3M |
+| TimesNet_cls | 87.5 | 5.3M |
> **注:以上精度指标测量自 <a href="https://www.timeseriesclassification.com/index.php">UEA/UWaveGestureLibrary</a> 数据集。**
@@ -60,7 +60,7 @@ tar -xf ./dataset/ts_classify_examples.tar -C ./dataset/
- 时间频率一致:确保所有数据序列的时间频率一致,如每小时、每日或每周,对于不一致的时间序列,可以通过重采样方法调整到统一的时间频率。
- 时间序列长度一致:确保每一个group的时间序列的长度一致。
- 缺失值处理:为了保证数据的质量和完整性,可以基于专家经验或统计方法进行缺失值填充。
- 非重复性:保证数据是安装时间顺序按行收集的,同一个时间点不能重复出现。
@@ -144,7 +144,7 @@ python main.py -c paddlex/configs/ts_classification/TimesNet_cls.yaml \
-o Train.target_cols=dim_0,dim_1,dim_2 \
-o Train.group_id=group_id \
- -o Train.static_cov_cols=label
+ -o Train.static_cov_cols=label
@@ -172,7 +172,7 @@ PaddleX 中每个模型都提供了模型开发的配置文件,用于设置相
@@ -243,7 +243,7 @@ python main.py -c paddlex/configs/ts_classification/TimesNet_cls.yaml \
## 7. 开发集成/部署
PaddleX 针对时序分析模型也提供了 本地推理部署/服务化部署的方式进行模型部署。目前时序部署方案为动态图部署,提供本地推理和服务化部署两种部署方式,能够满足更多场景的需求。本地部署和服务化部署两种部署方式的特点如下:
@@ -33,11 +33,11 @@ PaddleX 提供了5个端到端的时序预测模型,具体可参考 [模型列
| 模型列表 | mse | mae | 模型存储大小 |
|:----------------|:------:|:------:|:--------------:|
-| DLinear | 0.386 | 0.445 | 80k |
-| Nonstationary | 0.385 | 0.463 | 61M |
-| TiDE | 0.376 | 0.441 | 35M |
-| PatchTST | 0.291 | 0.380 | 2.2M |
-| TimesNet | 0.284 | 0.386 | 5.2M |
+| DLinear | 0.386 | 0.445 | 80k |
+| Nonstationary | 0.385 | 0.463 | 61M |
+| TiDE | 0.376 | 0.441 | 35M |
+| PatchTST | 0.291 | 0.380 | 2.2M |
+| TimesNet | 0.284 | 0.386 | 5.2M |
> **注:以上精度指标测量自 <a href="https://archive.ics.uci.edu/dataset/321/electricityloaddiagrams20112014">ECL</a> 数据集,输入输出长度均为 96。**
@@ -185,7 +185,7 @@ python main.py -c paddlex/configs/ts_forecast/DLinear.yaml \
"dataset_path": "./dataset/electricity",
"show_type": "csv",
"dataset_type": "TSDataset"
@@ -259,7 +259,7 @@ PaddleX 中每个模型都提供了模型开发的配置文件,用于设置相
@@ -343,7 +343,7 @@ python main.py -c paddlex/configs/ts_forecast/DLinear.yaml \
# copyright (c) 2024 PaddlePaddle Authors. All Rights Reserve.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
@@ -17,23 +17,24 @@ import os
import argparse
from paddlex.repo_manager import setup, get_all_supported_repo_names
-if __name__ == '__main__':
+if __name__ == "__main__":
# Enable debug info
- os.environ['PADDLE_PDX_DEBUG'] = 'True'
+ os.environ["PADDLE_PDX_DEBUG"] = "True"
# Disable eager initialization
- os.environ['PADDLE_PDX_EAGER_INIT'] = 'False'
+ os.environ["PADDLE_PDX_EAGER_INIT"] = "False"
parser = argparse.ArgumentParser()
- parser.add_argument('devkits', nargs='*', default=[])
- parser.add_argument('--no_deps', action='store_true')
- parser.add_argument('--platform', type=str, default='github.com')
- parser.add_argument('--update_repos', action='store_true')
+ parser.add_argument("devkits", nargs="*", default=[])
+ parser.add_argument("--no_deps", action="store_true")
+ parser.add_argument("--platform", type=str, default="github.com")
+ parser.add_argument("--update_repos", action="store_true")
parser.add_argument(
- '-y',
- '--yes',
- dest='reinstall',
- action='store_true',
- help="Whether to reinstall all packages.")
+ "-y",
+ "--yes",
+ dest="reinstall",
+ action="store_true",
+ help="Whether to reinstall all packages.",
+ )
args = parser.parse_args()
repo_names = args.devkits
@@ -44,4 +45,5 @@ if __name__ == '__main__':
reinstall=args.reinstall or None,
no_deps=args.no_deps,
platform=args.platform,
- update_repos=args.update_repos)
+ update_repos=args.update_repos,
@@ -13,11 +13,15 @@
# limitations under the License.
import os
from . import version
-from .modules import build_dataset_checker, build_trainer, build_evaluater, build_predictor
+from .modules import (
+ build_dataset_checker,
+ build_trainer,
+ build_evaluater,
+ build_predictor,
+)
from .modules import create_model, PaddleInferenceOption
from .pipelines import *
@@ -30,7 +34,8 @@ def _initialize():
__DIR__ = os.path.abspath(os.path.dirname(os.path.abspath(__file__)))
repo_manager.set_parent_dirs(
- os.path.join(__DIR__, 'repo_manager', 'repos'), repo_apis)
+ os.path.join(__DIR__, "repo_manager", "repos"), repo_apis
setup_logging()
@@ -39,16 +44,16 @@ def _initialize():
def _check_paddle_version():
- """check paddle version
- """
+ """check paddle version"""
import paddle
- supported_versions = ['3.0', '0.0']
- device_type = paddle.device.get_device().split(':')[0]
- if device_type.lower() == 'xpu':
- supported_versions.append('2.6')
+ supported_versions = ["3.0", "0.0"]
+ device_type = paddle.device.get_device().split(":")[0]
+ if device_type.lower() == "xpu":
+ supported_versions.append("2.6")
version = paddle.__version__
# Recognizable version number: major.minor.patch
- major, minor, patch = version.split('.')
+ major, minor, patch = version.split(".")
# Ignore patch
version = f"{major}.{minor}"
if version not in supported_versions:
@@ -37,4 +37,4 @@ Predict:
input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_formula_rec_001.png"
kernel_option:
run_mode: paddle
- batch_size: 1
+ batch_size: 1
@@ -38,4 +38,4 @@ Predict:
input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg"
input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_instance_segmentation_004.png"
input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_object_detection_002.png"
input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png"
input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_001.jpg"
input_path: "/paddle/dataset/paddlex/layout/det_layout_examples/images/JPEGImages/train_0001.jpg"
@@ -36,4 +36,4 @@ Predict:
input_path: "/paddle/dataset/paddlex/table_rec/table_rec_dataset_examples/images/border_10368_GBUAFQNHRKR5FUQ6ZE50.jpg"
input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.png"
input_path: "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_rec_001.png"