本文介绍基于PaddleX开发常用香料分类模型的流程。先因淄博烧烤爆火,提及在家DIY烧烤时香料识别的需求,接着说明用MobileNetV2模型,步骤包括安装PaddleX、解压数据集、配置GPU、定义图像处理流程和数据集,再进行模型训练与预测,最后提到还可使用百度EasyDL开发。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

大学生特种兵,快来淄博吃烧烤啦!
近期,随着淄博烧烤的爆火,越来越多的人选择去淄博旅游、吃烧烤,在五一期间,客流量更是远远超过了淄博旅游接待最大容量。

为了应对激增的客流量,淄博市加大了旅游接待容量,但在五一期间仍然难以满足游客需求。据了解,淄博市的许多景区和酒店在五一期间也加班加点地提供服务,以确保游客能够有一个愉快的旅行体验。同时,一些有影响力的博主、网红也在社交媒体上呼吁大家文明旅游,避免人流拥挤和垃圾乱扔等不良行为,为淄博市的旅游形象贡献一份力量。
尽管面临巨大的挑战,淄博市依然坚定地推进旅游业的发展,通过不断提升服务质量和配套设施,努力满足游客的需求。相信在各方的共同努力下,淄博市的旅游业一定能够迎来更加繁荣的明天。
但是,烧烤香料种类繁多,如果我们想在家里“DIY”的话,面对如此纷繁复杂的香料类别,很多烹饪新手在使用香料的时候会感觉无从下手,因此通过人工智能来实现香料的识别可以为我们的生活提供极大的方便。那么,我们基于PaddleX开发一款可以进行常用香料分类的模型,就可以大大提高我们的烹饪效率
数据集介绍
数据来源于本开发者(哈密不是瓜)的公开数据集,其中包括五种香料类型。
MobileNetV2简介
MobileNetV2是一个图像分类模型,其是基于深度分离卷积和倒置残差结构的网络,能更好地匹配移动和嵌入式设备。本文档在一个小数据集上展示了如何通过PaddleX进行训练和预测。
1. 安装PaddleX
#paddlex 2.0.0 的版本不稳定,所以我们选择使用paddlex 1.3.10的版本 ! pip install "paddlex==1.3.10" -i https://mirror.baidu.com/pypi/simple
2. 解压常用香料分类数据集
!unzip -oq /home/aistudio/xiangliao.zip
3. 模型训练
3.1 配置GPU
# 设置使用0号GPU卡(如无GPU,执行此代码后仍然会使用CPU训练模型)import matplotlib
matplotlib.use('Agg')
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'import paddlex as pdx
3.2 定义图像处理流程transforms
定义数据处理流程,其中训练和测试需分别定义,训练过程包括了部分测试过程中不需要的数据增强操作,如在本示例中,训练过程使用了RandomCrop和RandomHorizontalFlip两种数据增强方式,更多图像预处理流程transforms的使用可参见paddlex.cls.transforms。
from paddlex.cls import transforms
train_transforms = transforms.Compose([
transforms.RandomCrop(crop_size=224),
transforms.RandomHorizontalFlip(),
transforms.Normalize()
])
eval_transforms = transforms.Compose([
transforms.ResizeByShort(short_size=256),
transforms.CenterCrop(crop_size=224),
transforms.Normalize()
])
train_dataset = pdx.datasets.ImageNet(
data_dir='xiangliao/xiangliao',
file_list='xiangliao/xiangliao/train_list.txt',
label_list='xiangliao/xiangliao/labels.txt',
transforms=train_transforms,
shuffle=True)
eval_dataset = pdx.datasets.ImageNet(
data_dir='xiangliao/xiangliao',
file_list='xiangliao/xiangliao/val_list.txt',
label_list='xiangliao/xiangliao/labels.txt',
transforms=eval_transforms)
3.4 模型开始训练
使用本数据集在P40上训练。 更多训练模型的参数可参见文档paddlex.cls.MobileNetV2。 模型训练过程每间隔save_interval_epochs轮会保存一次模型在save_dir目录下,同时在保存的过程中也会在验证数据集上计算相关指标,具体相关日志参见文档。
AIStudio使用VisualDL查看训练过程中的指标变化
- 点击左边菜单图标的『可视化』;
- 设置logdir,logdir的路径为训练代码中save_dir指定的目录下的vdl_log目录,例如output/mobilenetv2/vdl_log
- 点击下方『启动VisualDL服务按钮』,再『打开VisualDL』即可
num_classes = len(train_dataset.labels)
model = pdx.cls.MobileNetV2(num_classes=num_classes)
model.train(num_epochs=10,
train_dataset=train_dataset,
train_batch_size=32,
eval_dataset=eval_dataset,
lr_decay_epochs=[4, 6, 8],
save_interval_epochs=1,
learning_rate=0.025,
save_dir='output/mobilenetv2',
use_vdl=True)
4. 模型预测
此处请在AIStudio Notebook页面的右上角菜单,选择重启执行器,以释放显存,重新加载训练好的模型
import paddlex as pdximport matplotlib.pyplot as plt
model = pdx.load_model('output/mobilenetv2/best_model')
image_name = 'ziran.jpg'#使用事先准备好的孜然图片进行预测result = model.predict(image_name)print("Predict Result:", result)#根据原始训练配置,最后模型效果在准确率在93%以上










