欢迎来到某某水务平台有限公司!

联系电话:020-88888888

新闻中心

News
您的位置: 主页 > 新闻中心 > 行业动态

Deep Learning:基于pytorch搭建神经网络的花朵种类识别项目(内涵完整文件和代码)—超详细完整实战教程

发布日期:2025-01-08 07:11浏览次数:51

请添加图片描述
相关链接::
超详细——CNN卷积神经网络教程(零基础到实战)
大白话pytorch基本知识点及语法+项目实战

基于pytorch的深度学习花朵种类识别项目开源完整文件

请添加图片描述

项目要求:

?基于 pytorch 搭建神经网络分类模型识别花的种类,输入一张花的照片,输出显示最有可能的前八种花的名称和该种花的照片。

分三大步骤操作:

数据集预处理操作:
  1. 读取数据集数据
  2. 构建神经网络的数据集
    1)数据增强:torchvision中transforms模块自带功能,将数据集中照片进行旋转、翻折、放大…得到更多的数据
    2)数据预处理:torchvision中transforms也帮我们实现好了,直接调用即可
    3)处理好的数据集保存在DataLoader模块中,可直接读取batch数据
    请添加图片描述
网络模型训练操作:
  1. 迁移pytorch官网中models提供的resnet模型,torchvision中有很多经典网络架构,调用起来十分方便,并且可以用人家训练好的权重参数来继续训练,也就是所谓的迁移学习
  2. 选择GPU计算、选择训练哪些层、优化器设置、损失函数设置…
  3. 训练全连接层,前几层都是做特征提取的,本质任务目标是一致的,前面的先不动,先训练最后一层全连接层
  4. 再训练所有层

请添加图片描述

预测种类操作:
  1. 加载训练好的模型,模型保存的时候可以带有选择性,例如在验证集中如果当前效果好则保存
  2. 设置检测图像的数据
  3. 设置展示界面并进行预测

请添加图片描述

请添加图片描述

flower_function/定义函数程序:

(在该程序中定义相关函数,以便在其他程序中进行调用)

  • 图像增强(数据集预处理处理)
  • 处理照片数据函数
  • 检测照片预处理函数
  • 展示一张照片函数请添加图片描述

flower_dataset/数据集处理程序:

  • 读取数据集(训练集测试集)数据
  • 构建神经网络的数据集
    请添加图片描述

flower_model网络模型训练程序:

  • 冻结神经网络权重函数
  • 修改全连接层函数(官方)
  • 训练模型函数
  • 加载并修改models中提供的resnet模型open
  • 开始训练全连接层(0-19)
  • 再继续训练所有层(0-9)
    请添加图片描述

flower_forecast预测程序:

  • 冻结神经网络权重函数
  • 修改全连接层函数
  • 加载测试模型
  • 设置检测图像数据
  • 设置展示界面
    请添加图片描述

代码整洁操作说明:

  • 两行“”“”“open、”“”“”end封装的是该模块的程序
  • #是单行注释
 

迁移学习:

用相似的模型的权重初始化,修改全连接层,然后重新训练
pytorch->transforms->resnet->models
pytorch官方transforms神经网络模型
(由于镜像在国外下载较慢,已经下载好了放在文件夹下)
请添加图片描述

模块化编程说明:

1、一个文件程序写全部代码有两个问题:

? 1)功能分工不明确

? 2)每次都要重新跑训练网络

2、模块化编程: 将功能函数分别放到不同的程序中,程序中相互调,可以分别进行功能测试

3、模块化编程两种方式:

  • A中:

    import B

    B.function

  • A中:

    from B import function

    function

4、注意import循环重载:

? 利用pycharm这种IDE进行模块化编程,多个.py文件相互import容易发生循环重载

  • 先了解下import的原理:

? 例:A中importB,当顺序执行A,遇到相关数据需要调用B时,停止执行A,去执行B,B执行完了再执行A,如果A、B相互调用的话会报错

  • 解决办法:

? 当A中importB,当B又需要调用A时,把需要的A中参数定义、函数定义在B中再写一遍

1、用pycharm或其他IDE需要配置python、pytorch环境

2、迁移学习的模型已经下载在文件中,不用重新下载

3、直接单独运行flower_forecast预测程序,可在设置检测图像数据模块中更换照片检测

4、如果想看神经网络搭建过程,直接运行flower_model网络模型训练程序

1、神经网络是个黑盒子,只要不是深入研究,我们做工程性项目重点是用神经网络而不是从0搭建网络,重点是利用神经网络做工程性项目,没有必要搞懂里面每一步(之前踩的坑,又麻烦又浪费时间)!!!

2、简单学习CNN基本原理后,直接去网上找个注释写的相当详细的开源程序去读

3、用好迁移学习,即调用pyorch官网上已经训练好的相关模型,根据我们自己的项目重新训练

4、先把每段代码都写上功能注释(里面一些具体参数和步骤了解即可,一定要写,有助于理解复杂的神经网络流程),再试着动手调别人的网络模型,最后试着这套模板应用到别的项目(数据集)上
5、推荐B站上唐宇迪的课,讲的通俗易懂很详细
4天教会你深度学习|Opencv+PyTorch+CNN+Python入门到实战课程

请添加图片描述
大帅锅大漂亮都看到这了,点个赞再走吧!

关注博主,分享学习教程,一起HappyCodeing

flower_function/定义函数程序:

 

flower_dataset/数据集处理程序:

 

flower_model网络模型训练程序:

 

flower_forecast预测程序:

友情链接: 万向 万向 富联 富联 高德
Copyright © 2002-2022 万向-万向注册水务调度系统 版权所有 Powered by EyouCms 

平台注册入口