Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
1201af5d
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看板
提交
1201af5d
编写于
11月 09, 2021
作者:
G
gaotingquan
提交者:
Tingquan Gao
11月 10, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: update flower102 label map list
上级
fcd1bc67
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
21 addition
and
53 deletion
+21
-53
dataset/.gitkeep
dataset/.gitkeep
+0
-0
dataset/flowers102/generate_flowers102_list.py
dataset/flowers102/generate_flowers102_list.py
+0
-39
docs/zh_CN/quick_start/quick_start_classification_new_user.md
.../zh_CN/quick_start/quick_start_classification_new_user.md
+18
-12
ppcls/configs/quick_start/MobileNetV3_large_x1_0.yaml
ppcls/configs/quick_start/MobileNetV3_large_x1_0.yaml
+1
-1
ppcls/configs/quick_start/ResNet50_vd.yaml
ppcls/configs/quick_start/ResNet50_vd.yaml
+1
-1
ppcls/configs/quick_start/new_user/ShuffleNetV2_x0_25.yaml
ppcls/configs/quick_start/new_user/ShuffleNetV2_x0_25.yaml
+1
-0
未找到文件。
dataset/
flowers102/__init__.py
→
dataset/
.gitkeep
浏览文件 @
1201af5d
文件已移动
dataset/flowers102/generate_flowers102_list.py
已删除
100644 → 0
浏览文件 @
fcd1bc67
"""
.mat files data format
imagelabel.mat
jpg_name 1 2 3 ...
label 32 12 66 ...
setid.mat
jpg_name(10 records in a class) 24 6 100 65 32 ...
label 4 ...
"""
"""
Usage:
python generate_flower_list.py prefix_folder mode
python generate_flower_list.py jpg train > train_list.txt
python generate_flower_list.py jpg valid > val_list.txt
"""
import
scipy.io
import
numpy
as
np
import
os
import
sys
data_path
=
sys
.
argv
[
1
]
imagelabels_path
=
'./imagelabels.mat'
setid_path
=
'./setid.mat'
labels
=
scipy
.
io
.
loadmat
(
imagelabels_path
)
labels
=
np
.
array
(
labels
[
'labels'
][
0
])
setid
=
scipy
.
io
.
loadmat
(
setid_path
)
d
=
{}
d
[
'train'
]
=
np
.
array
(
setid
[
'trnid'
][
0
])
d
[
'valid'
]
=
np
.
array
(
setid
[
'valid'
][
0
])
d
[
'test'
]
=
np
.
array
(
setid
[
'tstid'
][
0
])
for
id
in
d
[
sys
.
argv
[
2
]]:
message
=
str
(
data_path
)
+
"/image_"
+
str
(
id
).
zfill
(
5
)
+
".jpg "
+
str
(
labels
[
id
-
1
]
-
1
)
print
(
message
)
docs/zh_CN/quick_start/quick_start_classification_new_user.md
浏览文件 @
1201af5d
...
...
@@ -47,18 +47,18 @@ cd $path_to_PaddleClas
```
shell
# linux or mac
cd
dataset/
flowers102
cd
dataset/
# 如果希望从浏览器中直接下载,可以复制该链接并访问,然后下载解压即可
wget https://paddle-imagenet-models-name.bj.bcebos.com/data/flowers102.zip
# 解压
unzip flowers102.zip
```
没有安装
`wget`
命令或者在 Windows 中下载的话,需要将地址拷贝到浏览器中下载,并进行解压到
PaddleClas 的根目录
即可。
没有安装
`wget`
命令或者在 Windows 中下载的话,需要将地址拷贝到浏览器中下载,并进行解压到
目录
`PaddleClas/dataset/`
下面
即可。
解压完成后,在
文件夹下已经生成用于训练和测试的三个
`.txt`
文件:
`train_list.txt`
(训练集,1020张图)、
`val_list.txt`
(验证集,1020张图)、
`train_extra_list.txt`
(更大的训练集,7169张图)。文件中每行格式:
**图像相对路径**
**图像的label_id**
(注意:中间有空格)
。
解压完成后,在
目录
`PaddleClas/dataset/flowers102`
下有用于训练和测试的三个
`.txt`
文件:
`train_list.txt`
(训练集,1020张图)、
`val_list.txt`
(验证集,1020张图)、
`train_extra_list.txt`
(更大的训练集,7169张图)。文件中每行格式:
**图像相对路径**
**图像的label_id**
(注意:中间有空格),此外还有flowers102数据集 label id 与类别名称的映射文件:
`flowers102_label_list.txt`
。
此时flowers102数据集存放在
**dataset/flowers102/jpg**
文件夹
中,图像示例如下:
flowers102数据集的图像文件存放在
`dataset/flowers102/jpg`
目录
中,图像示例如下:
<div
align=
"center"
>
<img
src=
"../../images/quick_start/Examples-Flower-102.png"
width =
"800"
/>
...
...
@@ -122,7 +122,7 @@ python tools/train.py -c ./ppcls/configs/quick_start/new_user/ShuffleNetV2_x0_25
#### 不使用预训练模型
```
shell
python
3
tools/train.py
-c
./ppcls/configs/quick_start/ResNet50_vd.yaml
python tools/train.py
-c
./ppcls/configs/quick_start/ResNet50_vd.yaml
```
训练完成后,验证集的
`Top1 Acc`
曲线如下所示,最高准确率为0.2735。训练精度曲线下图所示
...
...
@@ -136,7 +136,7 @@ python3 tools/train.py -c ./ppcls/configs/quick_start/ResNet50_vd.yaml
基于 ImageNet1k 分类预训练模型进行微调,训练脚本如下所示
```
shell
python
3
tools/train.py
-c
./ppcls/configs/quick_start/ResNet50_vd.yaml
-o
Arch.pretrained
=
True
python tools/train.py
-c
./ppcls/configs/quick_start/ResNet50_vd.yaml
-o
Arch.pretrained
=
True
```
**注**
:此训练脚本使用 GPU,如使用 CPU 可按照上文中
[
4.1 使用CPU进行模型训练
](
#4.1
)
所示,进行修改。
...
...
@@ -149,20 +149,26 @@ python3 tools/train.py -c ./ppcls/configs/quick_start/ResNet50_vd.yaml -o Arch.p
## 5. 模型预测
训练完成后预测代码如下:
训练完成后
,可以使用训练好的模型进行预测,以训练的 ResNet50_vd 模型为例,
预测代码如下:
```
shell
cd
$path_to_PaddleClas
python
3 tools/infer.py
-c
./ppcls/configs/quick_start/new_user/ShuffleNetV2_x0_25.yaml
-o
Infer.infer_imgs
=
dataset/flowers102/jpg/image_00001.jpg
-o
Global.pretrained_model
=
output/ShuffleNetV2_x0_25
/best_model
python
tools/infer.py
-c
./ppcls/configs/quick_start/ResNet50_vd.yaml
-o
Infer.infer_imgs
=
dataset/flowers102/jpg/image_00001.jpg
-o
Global.pretrained_model
=
output/ResNet50_vd
/best_model
```
`-i`
输入为单张图像路径,运行成功后,示例结果如下:
`[{'class_ids': [76,
65, 34, 9, 69], 'scores': [0.91762, 0.01801, 0.00833, 0.0071, 0.00669], 'file_name': 'dataset/flowers102/jpg/image_00001.jpg', 'label_names': [
]}]`
`[{'class_ids': [76,
51, 37, 33, 9], 'scores': [0.99998, 0.0, 0.0, 0.0, 0.0], 'file_name': 'dataset/flowers102/jpg/image_00001.jpg', 'label_names': ['passion flower', 'wild pansy', 'great masterwort', 'mexican aster', 'globe thistle'
]}]`
`-i`
输入为图像集所在目录,运行成功后,示例结果
如下:
当然也可以使用训练的 ShuffleNetV2_x0_25 模型进行预测,代码
如下:
```
txt
[{'class_ids': [76, 65, 34, 9, 69], 'scores': [0.91762, 0.01801, 0.00833, 0.0071, 0.00669], 'file_name': 'dataset/flowers102/jpg/image_00001.jpg', 'label_names': []}, {'class_ids': [76, 69, 34, 28, 9], 'scores': [0.77122, 0.06295, 0.02537, 0.02531, 0.0251], 'file_name': 'dataset/flowers102/jpg/image_00002.jpg', 'label_names': []}, {'class_ids': [99, 76, 81, 85, 16], 'scores': [0.26374, 0.20423, 0.07818, 0.06042, 0.05499], 'file_name': 'dataset/flowers102/jpg/image_00003.jpg', 'label_names': []}, {'class_ids': [9, 37, 34, 24, 76], 'scores': [0.17784, 0.16651, 0.14539, 0.12096, 0.04816], 'file_name': 'dataset/flowers102/jpg/image_00004.jpg', 'label_names': []}, {'class_ids': [76, 66, 91, 16, 13], 'scores': [0.95494, 0.00688, 0.00596, 0.00352, 0.00308], 'file_name': 'dataset/flowers102/jpg/image_00005.jpg', 'label_names': []}, {'class_ids': [76, 66, 34, 8, 43], 'scores': [0.44425, 0.07487, 0.05609, 0.05609, 0.03667], 'file_name': 'dataset/flowers102/jpg/image_00006.jpg', 'label_names': []}, {'class_ids': [86, 93, 81, 22, 21], 'scores': [0.44714, 0.13582, 0.07997, 0.0514, 0.03497], 'file_name': 'dataset/flowers102/jpg/image_00007.jpg', 'label_names': []}, {'class_ids': [13, 76, 81, 18, 97], 'scores': [0.26771, 0.1734, 0.06576, 0.0451, 0.03986], 'file_name': 'dataset/flowers102/jpg/image_00008.jpg', 'label_names': []}, {'class_ids': [34, 76, 8, 5, 9], 'scores': [0.67224, 0.31896, 0.00241, 0.00227, 0.00102], 'file_name': 'dataset/flowers102/jpg/image_00009.jpg', 'label_names': []}, {'class_ids': [76, 34, 69, 65, 66], 'scores': [0.95185, 0.01101, 0.00875, 0.00452, 0.00406], 'file_name': 'dataset/flowers102/jpg/image_00010.jpg', 'label_names': []}]
```
shell
cd
$path_to_PaddleClas
python tools/infer.py
-c
./ppcls/configs/quick_start/new_user/ShuffleNetV2_x0_25.yaml
-o
Infer.infer_imgs
=
dataset/flowers102/jpg/image_00001.jpg
-o
Global.pretrained_model
=
output/ShuffleNetV2_x0_25/best_model
```
`-i`
参数也可以为待测图像文件所在目录(
`dataset/flowers102/jpg/`
),运行成功后,部分示例结果如下:
`[{'class_ids': [76, 51, 37, 33, 9], 'scores': [0.99998, 0.0, 0.0, 0.0, 0.0], 'file_name': 'dataset/flowers102/jpg/image_00001.jpg', 'label_names': ['passion flower', 'wild pansy', 'great masterwort', 'mexican aster', 'globe thistle']}, {'class_ids': [76, 51, 37, 33, 32], 'scores': [0.99999, 0.0, 0.0, 0.0, 0.0], 'file_name': 'dataset/flowers102/jpg/image_00002.jpg', 'label_names': ['passion flower', 'wild pansy', 'great masterwort', 'mexican aster', 'love in the mist']}, {'class_ids': [76, 12, 39, 73, 78], 'scores': [0.99998, 0.0, 0.0, 0.0, 0.0], 'file_name': 'dataset/flowers102/jpg/image_00003.jpg', 'label_names': ['passion flower', 'king protea', 'lenten rose', 'rose', 'toad lily']}, {'class_ids': [76, 37, 34, 12, 9], 'scores': [0.86282, 0.11177, 0.00717, 0.00599, 0.00397], 'file_name': 'dataset/flowers102/jpg/image_00004.jpg', 'label_names': ['passion flower', 'great masterwort', 'alpine sea holly', 'king protea', 'globe thistle']}, {'class_ids': [76, 37, 33, 51, 69], 'scores': [0.9999, 1e-05, 1e-05, 0.0, 0.0], 'file_name': 'dataset/flowers102/jpg/image_00005.jpg', 'label_names': ['passion flower', 'great masterwort', 'mexican aster', 'wild pansy', 'tree poppy']}, {'class_ids': [76, 37, 51, 33, 73], 'scores': [0.99999, 0.0, 0.0, 0.0, 0.0], 'file_name': 'dataset/flowers102/jpg/image_00006.jpg', 'label_names': ['passion flower', 'great masterwort', 'wild pansy', 'mexican aster', 'rose']}, {'class_ids': [76, 37, 12, 91, 30], 'scores': [0.98746, 0.00211, 0.00201, 0.00136, 0.0007], 'file_name': 'dataset/flowers102/jpg/image_00007.jpg', 'label_names': ['passion flower', 'great masterwort', 'king protea', 'bee balm', 'carnation']}, {'class_ids': [76, 37, 81, 77, 72], 'scores': [0.99976, 3e-05, 2e-05, 2e-05, 1e-05], 'file_name': 'dataset/flowers102/jpg/image_00008.jpg', 'label_names': ['passion flower', 'great masterwort', 'clematis', 'lotus', 'water lily']}, {'class_ids': [76, 37, 13, 12, 34], 'scores': [0.99646, 0.00144, 0.00092, 0.00035, 0.00027], 'file_name': 'dataset/flowers102/jpg/image_00009.jpg', 'label_names': ['passion flower', 'great masterwort', 'spear thistle', 'king protea', 'alpine sea holly']}, {'class_ids': [76, 37, 34, 33, 51], 'scores': [0.99999, 0.0, 0.0, 0.0, 0.0], 'file_name': 'dataset/flowers102/jpg/image_00010.jpg', 'label_names': ['passion flower', 'great masterwort', 'alpine sea holly', 'mexican aster', 'wild pansy']}]`
其中,列表的长度为 batch_size 的大小。
ppcls/configs/quick_start/MobileNetV3_large_x1_0.yaml
浏览文件 @
1201af5d
...
...
@@ -119,7 +119,7 @@ Infer:
PostProcess
:
name
:
Topk
topk
:
5
class_id_map_file
:
ppcls/utils/imagenet1k
_label_list.txt
class_id_map_file
:
./dataset/flowers102/flowers102
_label_list.txt
Metric
:
Train
:
...
...
ppcls/configs/quick_start/ResNet50_vd.yaml
浏览文件 @
1201af5d
...
...
@@ -118,7 +118,7 @@ Infer:
PostProcess
:
name
:
Topk
topk
:
5
class_id_map_file
:
ppcls/utils/imagenet1k
_label_list.txt
class_id_map_file
:
./dataset/flowers102/flowers102
_label_list.txt
Metric
:
Train
:
...
...
ppcls/configs/quick_start/new_user/ShuffleNetV2_x0_25.yaml
浏览文件 @
1201af5d
...
...
@@ -118,6 +118,7 @@ Infer:
PostProcess
:
name
:
Topk
topk
:
5
class_id_map_file
:
./dataset/flowers102/flowers102_label_list.txt
Metric
:
Train
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录