第一步:准备数据
10种番茄/西红柿叶子病虫害:
self.label_dict = {'0': 'Tomato___Bacterial_spot', '1': 'Tomato___Early_blight', '2': 'Tomato___healthy', '3': 'Tomato___Late_blight', '4': 'Tomato___Leaf_Mold', '5': 'Tomato___Septoria_leaf_spot', '6': 'Tomato___Spider_mites Two-spotted_spider_mite', '7': 'Tomato___Target_Spot', '8': 'Tomato___Tomato_mosaic_virus', '9': 'Tomato___Tomato_Yellow_Leaf_Curl_Virus'}
,总共有18345张图片,每个文件夹单独放一种
第二步:搭建模型
本文选择MobileNetV2,其网络结构如下:
由于是十分类问题,直接套用网络肯定是不行,因此会在改动神经网络输出类别数,参考代码如下:
model = MobileNetV2(num_classes=update_train_parameters['class_dim'])
第三步:训练代码
1)损失函数为:交叉熵损失函数
2)MobileNetV2从头训练:
model = MobileNetV2(num_classes=update_train_parameters['class_dim'])
model.train()
cross_entropy = paddle.nn.CrossEntropyLoss()
optimizer = paddle.optimizer.Adam(learning_rate = update_train_parameters['learning_strategy']['lr'],
parameters = model.parameters())
第四步:统计正确率
|
正确率高达92.9%
第五步:搭建GUI界面
第六步:整个工程的内容
有训练代码和训练好的模型以及训练过程,提供数据,提供GUI界面代码,主要使用方法可以参考里面的“文档说明_必看.docx”
代码的下载路径(新窗口打开链接):基于paddle框架的MobileNetV2神经网络番茄/西红柿叶子病虫害识别系统源码
有问题可以私信或者留言,有问必答