卷积神经网络分类算法的模型训练

简介: 卷积神经网络分类算法的模型训练

卷积神经网络分类算法的模型训练

启动Web服务器、应用使用说明和测试结果示例。

模型创建与编译

原VGG-16模型要求输入224×224×3的图片,限于GPU的计算能力,选择将28×28×1的数据集图片大小重置为56×56×1,由此计算出进入第一个全连接层的图像尺寸为7×7×256;最后一个全连接层输出值设为类别数量10。按设计好的参数定义模型结构,代码如下:

e1ac6b9397694c9f9cedabea1d4ce07f.png

为了评估实际情况和预测情况的差距,引入相对熵来描述这一差距。本模型是多类别的分类问题,因此选用经典的交叉熵作为损失函数,代码如下:

#损失函数

loss=nn.CrossEntropyLoss()

为了进行参数的调整和更新,以达到损失函数的最小化或最大化,使模型产生更好更快的效果,需要选择训练策略。本模型选择Adam优化算法,它具有能计算每个参数的自适应学习率的特点。因此,可以设置学习率为默认值0.001。

#优化算法

optimizer=optim.Adam(net.parameters(),lr=0.001)

模型训练及保存

定义模型结构及损失函数后,需要对模型进行训练,使其具有服装图像分类的能力。经过训练的模型需要测试,以评估模型的训练效果。根据训练和测试的效果进行参数的调整后,保存模型。设定训练集batch_size=50,则每训练50张图片后进行一次迭代,根据损失函数前向传播,完成参数更新。

229b27558ee444a3a13ccf7eb67409de.png

为使训练效果更加直观,可以借助画图工具对训练过程可视化,模型将在每一个训练周期结束后保存损失值和准确度。

模型保存

在模型训练过程中,同时保存模型当前已训练周期数、权重、损失函数、优化算法,便于在训练终止后从当前进度恢复训练,并同时保存每个周期的损失值和正确率,以方便数据可视化。

模型生成

该应用分两部分:一是网页端交互功能,用户可以上传需要分类的图片并查看分类结果;二是图片预处理,将图片转换为PyTorch能够处理的格式并输入模型中,获取图片分类结果。

获得用户上传的图片并输入至模型获得对应的分类,将标签和图片写入数据库中。为了提高数据库的稳定性,采用bulk_create()方法批量写入数据,避免每写入一条数据就需要调用和关闭数据库的烦琐操作。

3e40cd851fa548edafa8432038956911.png

图像预处理

使用PIL库作为打开图片的方式,类型为Image,并将图片转为灰度图像。

3fe41078992e425cb9490bcb61d266d2.png

为使图片符合输入模型的数据格式,对图像进行预处理。模型输入图像大小要求为56×56,因此,修改用户输入的图像分辨率为56×56;为了对图像进行数据化处理,将PIL Image对象转换为numpy类型;原始数据集图片为黑底色白图案,将输入图片进行黑白色反转;PyTorch要求的数据输入格式为[b,c,h,w],需要扩展numpy的维数,再转换成Tensor张量。


模型调用与导入

首先,进行实例化;其次,使用load()方法加载模型的权重;最后,使用load_state_dict()方法将参数加载到网络上。

8e7f13339337429b8b7113929d927f85.png

目录
相关文章
|
8月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
9月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
631 0
|
9月前
|
机器学习/深度学习 并行计算 算法
粒子群算法优化RBF神经网络的MATLAB实现
粒子群算法优化RBF神经网络的MATLAB实现
609 123
|
8月前
|
机器学习/深度学习 算法
采用蚁群算法对BP神经网络进行优化
使用蚁群算法来优化BP神经网络的权重和偏置,克服传统BP算法容易陷入局部极小值、收敛速度慢、对初始权重敏感等问题。
536 5
|
9月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
768 11
|
9月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
584 2
|
9月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
222 8
|
9月前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
925 2
|
9月前
|
机器学习/深度学习 传感器 算法
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
372 7
|
9月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
242 1

热门文章

最新文章

相关产品

  • 人工智能平台 PAI