Python基于PyTorch实现卷积神经网络分类模型(CNN分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。




1.项目背景

卷积神经网络,简称为卷积网络,与普通神经网络的区别是它的卷积层内的神经元只覆盖输入特征局部范围的单元,具有稀疏连接(sparse connectivity)和权重共享(weight shared)的特点,而且其中的过滤器可以做到对图像关键特征的抽取。因为这一特点,卷积神经网络在图像识别方面能够给出更好的结果。 

本项目通过基于PyTorch实现Minst数据集卷积神经网络分类模型。

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据统计如下:

 

3.数据预处理

3.1 查看数据

查看数据:

关键代码:

扫描二维码关注公众号,回复: 15849527 查看本文章

 

3.2 数据集形状查看

数据集形状:

关键代码如下:  

 

4.探索性数据分析

4.1 查看图片

用Matplotlib工具的imshow ()方法绘制图片:

 

5.特征工程

5.1 建立特征数据和标签数据

关键代码如下:

6.构建卷积神经网络分类模型

主要使用CNN层网络,用于目标分类。

6.1 模型构建

6.2 迭代过程

 

7. 模型评估

7.1 评估指标及结果

评估指标主要包括准确率、查准率、查全率(召回率)、F1分值等等。

 

过上表可以看到,模型的准确率为99.14%,F1分值为0.9914,模型效果较好。

7.2 分类报告

 

从上图可以看出,分类为0的F1分值为0.99;分类为1的F1分值为0.99;分类为2的F1分值为0.99等等。

8.结论与展望

综上所述,本项目基于PyTorch实现卷积神经网络分类模型并对模型进行了评估,最终证明了我们提出的模型效果较好。

# 定义模型训练函数
def train(model, optimizer, criterion, train_loader):
    model.train()  # 设置训练模式
    for batch_idx, (data, target) in enumerate(train_loader):  # 循环
        optimizer.zero_grad()  # 清空过往梯度
        output = model(data)  # 预测


本次机器学习项目实战所需的资料,项目资源如下:

项目说明:
链接:https://pan.baidu.com/s/1dW3S1a6KGdUHK90W-lmA4w 
提取码:bcbp



train_images, train_targets = (train_dataset._load_data())  # 加载训练集数据:特征、标签
test_images, test_targets = (test_dataset._load_data())  # 加载测试集数据:特征、标签

print('*********************训练集特征数据**************************')
print(train_images[0][0])
print('*********************训练集标签数据**************************')
print(train_targets[0])
print('*********************训练集特征形状**************************')
print(train_images.size())
print('*********************训练集标签形状**************************')
print(train_targets.size())

 更多项目实战,详见机器学习项目实战合集列表:

机器学习项目实战合集列表_机器学习实战项目_胖哥真不错的博客-CSDN博客


猜你喜欢

转载自blog.csdn.net/weixin_42163563/article/details/131896462
今日推荐