垃圾分类算法训练及部署

  • 创建模型与编译
  • 模型训练及保存
  • 模型生成
  • 模型应用


创建模型与编译

数据加载进模型后定义模型结构,并优化损失函数。直接调用VGG-16模型作为卷积神经网络,包括13个卷积层、3个全连接层、5个池化层,后接全连接层,神经元数目为256,连接ReLU激活函数,再接全连接层,神经元个数为6,得到6维的特征向量,用于6个垃圾的分类训练,输入Softmax层进行分类,得到分类结果的概率输出。

由于批量梯度下降法在更新每一个参数时需要所有的训练样本,训练过程会随着样本数量的加大而变得异常缓慢。

构建优化器,optimizer=SGD(lr=1e-3,momentum=0.9),采用随机梯度下降学习算法。对数据分批训练,一批16张图片,分20轮训练。相关代码如下:

垃圾分类算法python 垃圾分类算法服务_分类

模型训练及保存

在定义模型架构并编译之后,通过训练集训练模型,使模型识别图片。这里,使用训练集和测试集拟合并保存模型。

垃圾分类算法python 垃圾分类算法服务_垃圾分类算法python_02


通过观察训练集和测试集的损失函数、准确率的大小来评估模型的训练程度,进行模型训练的进一步决策。一般来说,训练集和测试集的损失函数(或准确率)不变且基本相等时为模型训练的最佳状态。

模型生成

后台服务器相关代码如下:

垃圾分类算法python 垃圾分类算法服务_原力计划_03


图片接口API相关代码如下:

垃圾分类算法python 垃圾分类算法服务_算法_04

模型应用

将数据代入模型进行测试,分类的标签与原始数据进行对比,搜索“基于图像识别的你是什么垃圾”小程序,单击即可进入。

界面采用简约的设计,只有一个按钮。单击按钮后可以上传图片进行垃圾分类识别,如图所示。

上传图片后出现进度条对用户进行反馈,识别完成后跳转至结果页面。

垃圾分类算法python 垃圾分类算法服务_原力计划_05