使用PaddleCls进行图片分类模型训练与使用

数据

数据集结构
├── train
│ ├── n01440764
│ │ ├── n01440764_10026.JPEG
│ │ ├── n01440764_10027.JPEG
├── train_list.txt

├── val
│ ├── ILSVRC2012_val_00000001.JPEG
│ ├── ILSVRC2012_val_00000002.JPEG
├── val_list.txt

训练

  1. 修改配置文件
    使用PPLCNET预训练模型,使用位于ppcls/configs/ImageNet/PPLCNet/PPLCNet_x1_0.yaml为模型进行修改,设置参数如下:
#设置训练次数
Global:
  epochs: 1000
DataLoader:
  Train:
    dataset:
      name: ImageNetDataset
      image_root: ./dataset/fl/
      cls_label_path: ./dataset/fl/train_list.txt
    sampler:
      batch_size: 10 # 一次训练图片数量
    loader:
      num_workers: 6 #子进程数
  1. 开始训练命令
python3 -m paddle.distributed.launch --gpus="0,1,2,3"  tools/train.py  -c PPLCNet/PPLCNet_x1_0.yaml

测试

python3 tools/eval.py  -c PPLCNet/PPLCNet_x1_0.yaml  -o Global.pretrained_model=output/PPLCNet_x1_0/best_model

部署

  1. 导出模型
python3 tools/export_model.py PPLCNet/PPLCNet_x1_0.yaml -o Global.pretrained_model=output/PPLCNet_x1_0/best_model -o Global.save_inference_dir=deploy/models/PPLCNet_x1_0_infer
  1. 基于代码的模型使用
from paddleclas import PaddleClas
clas = PaddleClas(inference_model_dir='deploy/models/PPLCNet_x1_0_infer')
infer_imgs='docs/images/deployment/whl_demo.jpg'
result=clas.predict(infer_imgs)
print(next(result))
  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PaddleCls 中加载预训练模型可以通过以下步骤实现: 1. 安装 PaddlePaddle 和 PaddleCls:首先需要安装 PaddlePaddle 深度学习框架和 PaddleCls 工具包。你可以通过官方网站或者使用 pip 命令来安装。 2. 下载预训练模型权重:从 PaddleCls模型库中选择并下载你想要使用的预训练模型的权重文件。你可以在官方文档或者 PaddleCls 的 GitHub 仓库中找到相应的权重文件。 3. 创建模型并加载权重:在 Python 代码中,首先导入相关的库和模块。然后,创建对应的模型,并使用 `paddle.Model` 类加载预训练模型的权重。 ```python import paddle import paddle.vision as vision # 创建模型 model = vision.models.resnet50(pretrained=False) # 加载预训练模型权重 model_state_dict = paddle.load("/path/to/pretrained_model.pdparams") model.set_state_dict(model_state_dict) ``` 注意,上述代码中的 `"/path/to/pretrained_model.pdparams"` 需要替换为你下载的预训练模型权重文件的路径。 4. 使用模型进行推理:加载预训练模型后,你可以使用模型进行图像分类、目标检测或其他任务的推理。 ```python import paddle import paddle.vision.transforms as transforms # 预处理图像 transform = transforms.Compose([ transforms.Resize(size=(224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) image = transform(image) # image 为输入的图像数据 # 使用模型进行推理 logits = model(image.unsqueeze(0)) # unsqueeze(0) 将输入的图像数据扩展为 batch 维度 ``` 以上是加载预训练模型的一般步骤。具体的模型加载方法和预处理步骤可能因不同的模型和任务而有所不同,请参考 PaddleCls 的官方文档或示例代码以获得更详细的信息和使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值