Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
bd9aee7d
P
PaddleClas
项目概览
PaddlePaddle
/
PaddleClas
接近 2 年 前同步成功
通知
116
Star
4999
Fork
1114
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
19
列表
看板
标记
里程碑
合并请求
6
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleClas
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
19
Issue
19
列表
看板
标记
里程碑
合并请求
6
合并请求
6
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
bd9aee7d
编写于
2月 28, 2023
作者:
H
HydrogenSulfate
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
format MetaBIN_ResNet50_cross_domain.yaml and metabin.md
上级
cc638a9d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
12 deletion
+21
-12
docs/zh_CN/training/metric_learning/metabin.md
docs/zh_CN/training/metric_learning/metabin.md
+16
-7
ppcls/configs/reid/MetaBIN_ResNet50_cross_domain.yaml
ppcls/configs/reid/MetaBIN_ResNet50_cross_domain.yaml
+5
-5
未找到文件。
docs/zh_CN/training/metric_learning/metabin.md
浏览文件 @
bd9aee7d
...
@@ -13,15 +13,15 @@
...
@@ -13,15 +13,15 @@
-
[
5. 模型评估与推理部署
](
#5-模型评估与推理部署
)
-
[
5. 模型评估与推理部署
](
#5-模型评估与推理部署
)
-
[
5.1 模型评估
](
#51-模型评估
)
-
[
5.1 模型评估
](
#51-模型评估
)
-
[
5.2 模型推理
](
#52-模型推理
)
-
[
5.2 模型推理
](
#52-模型推理
)
-
[
5.2.1 推理模型准备
](
#521-推理模型准备
)
-
[
5.2.1 推理模型准备
](
#521-推理模型准备
)
-
[
5.2.2 基于 Python 预测引擎推理
](
#522-基于-python-预测引擎推理
)
-
[
5.2.2 基于 Python 预测引擎推理
](
#522-基于-python-预测引擎推理
)
-
[
5.2.3 基于 C++ 预测引擎推理
](
#523-基于-c-预测引擎推理
)
-
[
5.2.3 基于 C++ 预测引擎推理
](
#523-基于-c-预测引擎推理
)
-
[
5.4 服务化部署
](
#54-服务化部署
)
-
[
5.4 服务化部署
](
#54-服务化部署
)
-
[
5.5 端侧部署
](
#55-端侧部署
)
-
[
5.5 端侧部署
](
#55-端侧部署
)
-
[
5.6 Paddle2ONNX 模型转换与预测
](
#56-paddle2onnx-模型转换与预测
)
-
[
5.6 Paddle2ONNX 模型转换与预测
](
#56-paddle2onnx-模型转换与预测
)
-
[
6. 总结
](
#6-总结
)
-
[
6. 总结
](
#6-总结
)
-
[
6.1 方法总结与对比
](
#61-方法总结与对比
)
-
[
6.1 方法总结与对比
](
#61-方法总结与对比
)
-
[
6.2 使用建议/FAQ
](
#62-使用建议faq
)
-
[
6.2 使用建议/FAQ
](
#62-使用建议faq
)
-
[
7. 参考资料
](
#7-参考资料
)
-
[
7. 参考资料
](
#7-参考资料
)
## 1. 原理介绍
## 1. 原理介绍
...
@@ -65,9 +65,11 @@
...
@@ -65,9 +65,11 @@
1.
执行以下命令开始训练
1.
执行以下命令开始训练
单卡训练:
单卡训练:
```shell
```shell
python3.7 tools/train.py -c ./ppcls/configs/reid/MetaBIN_ResNet50_cross_domain.yaml
python3.7 tools/train.py -c ./ppcls/configs/reid/MetaBIN_ResNet50_cross_domain.yaml
```
```
注:单卡训练大约需要4个小时。
注:单卡训练大约需要4个小时。
2.
查看训练日志和保存的模型参数文件
2.
查看训练日志和保存的模型参数文件
...
@@ -102,9 +104,11 @@
...
@@ -102,9 +104,11 @@
-c
./ppcls/configs/reid/MetaBIN_ResNet50_cross_domain.yaml
\
-c
./ppcls/configs/reid/MetaBIN_ResNet50_cross_domain.yaml
\
-o
Global.pretrained_model
=
"pretrained_models/metabin_resnet50_pretrained"
-o
Global.pretrained_model
=
"pretrained_models/metabin_resnet50_pretrained"
```
```
注:
`pretrained_model`
后填入的地址不需要加
`.pdparams`
后缀,在程序运行时会自动补上。
注:
`pretrained_model`
后填入的地址不需要加
`.pdparams`
后缀,在程序运行时会自动补上。
-
查看输出结果
-
查看输出结果
```
log
```
log
...
...
...
...
...
@@ -120,6 +124,7 @@
...
@@ -120,6 +124,7 @@
ppcls INFO: re_ranking=False
ppcls INFO: re_ranking=False
ppcls INFO: [Eval][Epoch 0][Avg]recall1: 0.55251, recall5: 0.68268, recall10: 0.72756, mAP: 0.32977
ppcls INFO: [Eval][Epoch 0][Avg]recall1: 0.55251, recall5: 0.68268, recall10: 0.72756, mAP: 0.32977
```
```
默认评估日志保存在
`PaddleClas/output/RecModel/eval.log`
中,可以看到我们提供的
`metabin_resnet50_pretrained.pdparams`
模型在 Market-1501 数据集上的评估指标为recall@1=0.55251,recall@5=0.68268,recall@10=0.72756,mAP=0.32977
默认评估日志保存在
`PaddleClas/output/RecModel/eval.log`
中,可以看到我们提供的
`metabin_resnet50_pretrained.pdparams`
模型在 Market-1501 数据集上的评估指标为recall@1=0.55251,recall@5=0.68268,recall@10=0.72756,mAP=0.32977
-
使用re-ranking功能提升评估精度
-
使用re-ranking功能提升评估精度
...
@@ -133,7 +138,9 @@
...
@@ -133,7 +138,9 @@
#### 5.2.1 推理模型准备
#### 5.2.1 推理模型准备
可以将训练过程中保存的模型文件转换成 inference 模型并推理,或者使用我们提供的转换好的 inference 模型直接进行推理
可以将训练过程中保存的模型文件转换成 inference 模型并推理,或者使用我们提供的转换好的 inference 模型直接进行推理
-
将训练过程中保存的模型文件转换成 inference 模型,同样以
`latest.pdparams`
为例,执行以下命令进行转换
-
将训练过程中保存的模型文件转换成 inference 模型,同样以
`latest.pdparams`
为例,执行以下命令进行转换
```shell
```shell
python3.7 tools/export_model.py \
python3.7 tools/export_model.py \
-c ./ppcls/configs/reid/MetaBIN_ResNet50_cross_domain.yaml \
-c ./ppcls/configs/reid/MetaBIN_ResNet50_cross_domain.yaml \
...
@@ -141,7 +148,8 @@
...
@@ -141,7 +148,8 @@
-o Global.save_inference_dir="./deploy/metabin_resnet50_infer"
-o Global.save_inference_dir="./deploy/metabin_resnet50_infer"
```
```
-
或者下载并解压我们提供的 inference 模型
-
或者下载并解压我们提供的 inference 模型
```shell
```shell
cd ./deploy
cd ./deploy
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/metric_learning/metabin/metabin_resnet50_infer.tar
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/metric_learning/metabin/metabin_resnet50_infer.tar
...
@@ -198,6 +206,7 @@
...
@@ -198,6 +206,7 @@
```log
```log
0005_c2_f0046985.jpg: [ 0.02503409 0.02032688 ... 0.0145475 0.02760422 ]
0005_c2_f0046985.jpg: [ 0.02503409 0.02032688 ... 0.0145475 0.02760422 ]
```
```
推理时的输出向量储存在[predict_rec.py](../../../../deploy/python/predict_rec.py#L131)的 `result_dict` 变量中。
推理时的输出向量储存在[predict_rec.py](../../../../deploy/python/predict_rec.py#L131)的 `result_dict` 变量中。
4.
批量预测,将配置文件中
`infer_imgs:`
后的路径改为为文件夹即可,如
`../dataset/dukemtmc/DukeMTMC/query/`
,会预测并逐个输出query下所有图片的特征向量。
4.
批量预测,将配置文件中
`infer_imgs:`
后的路径改为为文件夹即可,如
`../dataset/dukemtmc/DukeMTMC/query/`
,会预测并逐个输出query下所有图片的特征向量。
...
...
ppcls/configs/reid/MetaBIN_ResNet50_cross_domain.yaml
浏览文件 @
bd9aee7d
...
@@ -9,7 +9,7 @@ Global:
...
@@ -9,7 +9,7 @@ Global:
save_interval
:
8
save_interval
:
8
eval_during_train
:
True
eval_during_train
:
True
eval_interval
:
8
eval_interval
:
8
epochs
:
&epochs
348
# 348*50 = 120*145 = 17400 iters
epochs
:
&epochs
348
# 348*50 = 120*145 = 17400 iters
print_batch_step
:
25
print_batch_step
:
25
use_visualdl
:
False
use_visualdl
:
False
eval_mode
:
"
retrieval"
eval_mode
:
"
retrieval"
...
@@ -18,7 +18,7 @@ Global:
...
@@ -18,7 +18,7 @@ Global:
# used for static mode and model export
# used for static mode and model export
image_shape
:
[
3
,
256
,
128
]
image_shape
:
[
3
,
256
,
128
]
save_inference_dir
:
"
./inference"
save_inference_dir
:
"
./inference"
train_mode
:
'
metabin'
train_mode
:
"
metabin"
AMP
:
AMP
:
scale_loss
:
65536
scale_loss
:
65536
...
@@ -40,11 +40,11 @@ Arch:
...
@@ -40,11 +40,11 @@ Arch:
Head
:
Head
:
name
:
"
FC"
name
:
"
FC"
embedding_size
:
*feat_dim
embedding_size
:
*feat_dim
class_num
:
&class_num
751
class_num
:
751
weight_attr
:
weight_attr
:
initializer
:
initializer
:
name
:
KaimingUniform
name
:
KaimingUniform
negative_slope
:
2.23606
# math.sqrt(5)
negative_slope
:
2.23606
# math.sqrt(5)
nonlinearity
:
"
leaky_relu"
nonlinearity
:
"
leaky_relu"
bias_attr
:
False
bias_attr
:
False
...
@@ -85,7 +85,7 @@ DataLoader:
...
@@ -85,7 +85,7 @@ DataLoader:
loader
:
loader
:
num_workers
:
4
num_workers
:
4
use_shared_memory
:
True
use_shared_memory
:
True
Metalearning
:
Metalearning
:
Train
:
Train
:
dataset
:
dataset
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录