Paddle图像分类
V1.8
1 | paddlepaddle 1.8.3 |
预测
1 | import paddlehub as hub |
返回结果:[[{'tiger cat': 0.5675306916236877}]]
finetune
官方文档:github
自定义数据集
1 | ├─data: 数据目录 |
训练/验证/测试集的数据列表文件的格式如下
1 | 图片1路径 图片1标签 |
label_list.txt的格式如下
1 | 分类1名称 |
以fruits数据集为例,数据列表文件为:
1 | JPEGImages/apple_21.jpg 0 |
目录结构为:
1 | ├─Dataset: 数据目录 |
代码
1 | # coding:utf-8 |
接口
1 | def finetune(module_name, dataset_name, checkpoint_name, use_selfdataset=False, use_gpu=True, num_epoch=10, batch_size=16, use_data_parallel=True): |
- module_name:目前包括四个图像分类模型:efficientnetb7_imagenet、resnext50_vd_64x4d_imagenet、vgg19_imagenet、xception71_imagenet
- dataset_name:paddle自带数据集包括:flowers、dogcat、indoor67、food101. 如果是用户自定义数据集,dataset_name为Datasets目录下用户自定义数据集名。
- checkpoint_name:模型和cache文件保存位置,默认在 finetune_ckpt目录下。命名时不要重复。
- use_selfdataset:当使用用户自定义数据集时设置为True
保存loss
为了在运行过程中输出loss到txt文件,对paddlehub/finetune/task/base_task.py进行修改
修改部分如下:
1 | BaseTask类: |
被调用在_run函数中,约1247行,部分代码如下:
1 | if self.is_train_phase: |