本文介绍基于PaddleClas的多场景杂草分类研究。使用昆士兰州牧场8种杂草的17508张原位图像,经处理生成训练集(15000张)和验证集(2509张)。选用含49个卷积层和1个全连接层的ResNet50模型,通过PaddleClas训练,可边训边评并保存最优模型,还能单独评估及用存盘模型预测。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

!mkdir img !unzip /home/aistudio/data/data200134/images.zip -d /home/aistudio/img
# 导入相关包from sklearn.utils import shuffleimport osimport pandas as pdimport numpy as npfrom PIL import Imageimport paddleimport paddle.nn as nnfrom paddle.io import Datasetimport paddle.vision.transforms as Timport paddle.nn.functional as Ffrom paddle.metric import Accuracyimport random
dirpath = "img"# 先得到总的txt后续再进行划分,因为要划分出验证集,所以要先打乱,因为原本是有序的def get_all_txt():
all_list = []
i = 0
for root in os.listdir(dirpath):
i = i + 1
if("0.jpg" in root):
all_list.append(os.path.join(root)+" 0\n") if("1.jpg" in root):
all_list.append(os.path.join(root)+" 1\n") if("2.jpg" in root):
all_list.append(os.path.join(root)+" 2\n") if("3.jpg" in root):
all_list.append(os.path.join(root)+" 3\n") if("4.jpg" in root):
all_list.append(os.path.join(root)+" 4\n") if("5.jpg" in root):
all_list.append(os.path.join(root)+" 4\n") if("6.jpg" in root):
all_list.append(os.path.join(root)+" 4\n") if("7.jpg" in root):
all_list.append(os.path.join(root)+" 4\n")
allstr = ''.join(all_list)
f = open('all_list.txt','w',encoding='utf-8')
f.write(allstr) return all_list , i
all_list,all_lenth = get_all_txt()print(all_lenth-1) # 有意者是预测的图片,得减去17508
#打乱原先循序random.shuffle(all_list) random.shuffle(all_list)
#划分训练集和验证集train_size = int(15000) train_list = all_list[:train_size] val_list = all_list[train_size:]print(len(train_list))print(len(val_list))
15000 2509
# 运行cell,生成txt train_txt = ''.join(train_list)
f_train = open('train_list.txt','w',encoding='utf-8')
f_train.write(train_txt)
f_train.close()print("train_list.txt 生成成功!")train_list.txt 生成成功!
# 运行cell,生成txtval_txt = ''.join(val_list)
f_val = open('val_list.txt','w',encoding='utf-8')
f_val.write(val_txt)
f_val.close()print("val_list.txt 生成成功!")val_list.txt 生成成功!
!unzip -oq /home/aistudio/data/data98136/PaddleClas-release-2.1.zip
!mv img PaddleClas-release-2.1/dataset/ !mv all_list.txt PaddleClas-release-2.1/dataset/ !mv train_list.txt PaddleClas-release-2.1/dataset/ !mv val_list.txt PaddleClas-release-2.1/dataset/
%cd PaddleClas-release-2.1!ls
/home/aistudio/PaddleClas-release-2.1 configs docs MANIFEST.in README_cn.md setup.py dataset __init__.py paddleclas.py README.md tools deploy LICENSE ppcls requirements.txt
#我们使用提前准备好的配置文件!python tools/train.py \
-c /home/aistudio/ResNet50.yaml!python tools/eval.py \
-c /home/aistudio/ResNet50.yaml \
-o pretrained_model="/home/aistudio/PaddleClas-release-2.1/output/ResNet50/best_model"\
-o load_static_weights=False!python tools/infer/infer.py \
-i ~/work/test \
--model ResNet50 \
--pretrained_model "/home/aistudio/PaddleClas-release-2.1/output/ResNet50/best_models" \
--load_static_weights False \
--class_num=8以上就是【特训营第三期 】基于PaddleClas的多场景杂草分类的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号