Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >毕业设计之「测试实验及结果分析」(二)

毕业设计之「测试实验及结果分析」(二)

作者头像
石璞东
发布于 2020-07-14 08:59:53
发布于 2020-07-14 08:59:53
64100
代码可运行
举报
文章被收录于专栏:石璞东 | haha石璞东 | haha
运行总次数:0
代码可运行

阅读本文大概需要 8 分钟。

基于AlexNet完成五种花的训练和识别

花分类数据集获取及项目简介

在本例中,我们将使用通过Python爬虫技术获取的不具备版权的3762张样本图片,包括5个类别:其中daisy(菊花)633张,dandelion(蒲公英)898张,roses(玫瑰)641张,sunflowers(太阳花)699张,tulips(郁金香)799张;

  1. 训练集图片共3306张,同样也是5种类别,其中daisy(菊花)570张,dandelion(蒲公英)809张,roses(玫瑰)577张,sunflowers(太阳花)630张,tulips(郁金香)720张;
  2. 测试集图片共364张,也是5种类别,其中daisy(菊花)53张,dandelion(蒲公英)89张,roses(玫瑰)64张,sunflowers(太阳花)69张,tulips(郁金香)79张;

有了数据集之后,我们将搭建AlexNet卷积神经网络,通过对图片的训练,来完成对要识别图片的判断,要注意的一点,因为此项目中样本集中图片总量较小,所以相比第一个例子,识别率可能会有所下降。

代码及最终效果展示

接下来,我们给出本案例的核心代码,即AlexNet网络模型搭建的核心代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from TensorFlow.keras import layers, models, Model, Sequential
def flower_AlexNet(im_height=224, im_width=224, class_num=1000):
    input_image = layers.Input(shape=(im_height, im_width, 3), dtype="float32")  # output(None, 224, 224, 3)
    x = layers.ZeroPadding2D(((1, 2), (1, 2)))(input_image)                      # output(None, 227, 227, 3)
    x = layers.Conv2D(48, kernel_size=11, strides=4, activation="relu")(x)       # output(None, 55, 55, 48)
    x = layers.MaxPool2D(pool_size=3, strides=2)(x)                              # output(None, 27, 27, 48)
    x = layers.Conv2D(128, kernel_size=5, padding="same", activation="relu")(x)  # output(None, 27, 27, 128)
    x = layers.MaxPool2D(pool_size=3, strides=2)(x)                              # output(None, 13, 13, 128)
    x = layers.Conv2D(192, kernel_size=3, padding="same", activation="relu")(x)  # output(None, 13, 13, 192)
    x = layers.Conv2D(192, kernel_size=3, padding="same", activation="relu")(x)  # output(None, 13, 13, 192)
    x = layers.Conv2D(128, kernel_size=3, padding="same", activation="relu")(x)  # output(None, 13, 13, 128)
    x = layers.MaxPool2D(pool_size=3, strides=2)(x)                              # output(None, 6, 6, 128)
    x = layers.Flatten()(x)                         # output(None, 6*6*128)
    x = layers.Dropout(0.2)(x)
    x = layers.Dense(2048, activation="relu")(x)    # output(None, 2048)
    x = layers.Dropout(0.2)(x)
    x = layers.Dense(2048, activation="relu")(x)    # output(None, 2048)
    x = layers.Dense(class_num)(x)                  # output(None, 5)
    predict = layers.Softmax()(x)
    model = models.Model(inputs=input_image, outputs=predict)
    return model

为了更好的观察训练集和测试集损失值、精度的拟合曲线,我们通过如下代码将其绘制出来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# plot loss and accuracy image
history_dict = history.history
train_loss = history_dict["loss"]
train_accuracy = history_dict["accuracy"]
val_loss = history_dict["val_loss"]
val_accuracy = history_dict["val_accuracy"]

# figure 1
plt.figure()
plt.plot(range(epochs), train_loss, label='train_loss')
plt.plot(range(epochs), val_loss, label='val_loss')
plt.legend()
plt.xlabel('epochs')
plt.ylabel('loss')

# figure 2
plt.figure()
plt.plot(range(epochs), train_accuracy, label='train_accuracy')
plt.plot(range(epochs), val_accuracy, label='val_accuracy')
plt.legend()
plt.xlabel('epochs')
plt.ylabel('accuracy')
plt.show()

绘制出的结果如下所示:

图 1.1 loss曲线

图 1.2 accuracy曲线

图 1.3 玫瑰花识别效果图

写在最后

关于花分类识别的相关代码

需要注意的一点,我的毕设中关于花分类识别的代码是基于TensorFlow 1.x 版本的,代码略显冗长、规范程度也有待提高,因此在花分类识别的案例中只给出核心部分的代码,小伙伴们可以自己补齐其他代码或者私信找我,我私发给你。

关于花分类识别案例的拓展

为了丰富本论文的项目成果,同时也为了体验华为云AI开发平台的魅力,在毕业设计(基于Tensorflow的深度研究与实现)之番外篇中我们借助华为云AI开发平台ModelArts对训练集中的数据进行数据标注模型训练并最终部署测试(注:此部分不用编写任何代码,只需要会鼠标操作即可)。

小伙伴们学会上述的操作了吗,快去实现一下吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 hahaCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
人工智能|备战Tensorflow技能认证之两种快速构建模型的常用方式
Tensorflow认证考试内容五项中的第一项是基础/简单模型,第二项是学习数据集模型。小编猜想,这两者都是比较基础的知识,涉及到的知识应该主要包含:全连接神经网络搭建简单模型,数据集的加载,以及根据数据集搭建全连接神经网络模型进行训练(也有可能会涉及到卷积)。
算法与编程之美
2020/04/07
5250
人工智能|备战Tensorflow技能认证之两种快速构建模型的常用方式
AI识万物:从0搭建和部署手语识别系统 ⛵
据北京听力协会预估数据,我国听障人群数量已过千万。而在全球范围内有4.66亿人患有残疾性听力损失,约占全世界人口的5%。聋哑人士很特殊,他们需要使用手语进行交流,其他与常人无异,我国存在特殊教育水平在各城市中发展力度具有较大差异,国家通用手语推广程度浅,但不懂手语,与听力障碍者交流会非常困难。
ShowMeAI
2022/08/09
1.1K0
AI识万物:从0搭建和部署手语识别系统 ⛵
花朵分类(一)
首先我们来介绍下数据集,该数据集有5种花,一共有3670张图片,分别是daisy、dandelion、roses、sunflowers、tulips,数据存放结构如下所示
XianxinMao
2021/07/29
5110
“花朵分类“ 手把手搭建【卷积神经网络】
本文介绍卷积神经网络的入门案例,通过搭建和训练一个模型,来对几种常见的花朵进行识别分类;
一颗小树x
2021/05/13
2.1K0
“花朵分类“ 手把手搭建【卷积神经网络】
AI 炼丹系列(Python): 深度学习从练气到化神,是否结丹看你的(1)
先用一个简单的中文手写识别的深度学习例子来说明训练的过程,这里分别使用PyTorch和TenserFlow来实现,以便比较两个工具库的不同风格。
YS-SRT
2024/01/02
3550
AI 炼丹系列(Python): 深度学习从练气到化神,是否结丹看你的(1)
使用卷积神经网络构建图像分类模型检测肺炎
在本篇文章中,我将概述如何使用卷积神经网络构建可靠的图像分类模型,以便从胸部x光图像中检测肺炎的存在。
deephub
2020/09/23
1.1K0
使用卷积神经网络构建图像分类模型检测肺炎
独家 | 利用深度学习来预测Spotify上的Hip-Hop 流行程度
作者:Nicholas Indorf翻译:Gabriel Ng校对:zrx 本文约10000字,建议阅读13分钟项目中收集并使用了 Spotify 数据库中最近发布的hip-hop曲目的音频预览样本和相关的流行度分数。 摘要 在这个项目里面,我想构建一个工具来帮助我的表弟,一位名叫“KC Makes Music”的Hip-Hop艺术家。这个工具将会评估他尚未发布的歌曲是否有在Spotify上流行的潜力。 项目中只收集并使用了 Spotify 数据库中最近发布的hip-hop曲目的音频预览样本和相关的流行度分
数据派THU
2022/04/06
8170
独家 | 利用深度学习来预测Spotify上的Hip-Hop 流行程度
深度学习-IMBD二分类问题
IMBD自互联网电影数据库(IMDB)的50 000条评论数据。 分为训练集25000和测试25000 测试集合训练集的好评和差评按照1:1分配
火星娃统计
2020/09/15
6890
深度学习-IMBD二分类问题
深度学习实战-新闻文本多分类
广泛使用的文本分类数据集:46个不同的主题,即输出有46个类别。某些样本的主题更多,但是训练集中的每个主题至少有10个样本
皮大大
2023/08/23
3330
【tensorflow2.0】处理图片数据-cifar2分类
cifar2数据集为cifar10数据集的子集,只包括前两种类别airplane和automobile。
西西嘛呦
2020/08/26
7680
【tensorflow2.0】处理图片数据-cifar2分类
关于深度学习系列笔记十二(关于猫狗判断实验)
首先小小的庆祝一下自己的微信公众号订阅用户已达到100人了,是小小的虚荣心也是收获也是鞭策,希望自己砥砺前行,努力进步,做到更好。
python与大数据分析
2022/03/11
5020
关于深度学习系列笔记十二(关于猫狗判断实验)
模型剪枝
在这个过程中很有可能因为连接剪枝是一个非常不规则的操作,我们实现的时候通常会维护一个维度相等的矩阵,称为掩膜(mask)矩阵。掩膜矩阵为1的地方表示要保持的权重,为0的地方表示要剪掉的权重。
算法之名
2022/05/06
9570
模型剪枝
[Kaggle] Digit Recognizer 手写数字识别(卷积神经网络)
相关博文: [Hands On ML] 3. 分类(MNIST手写数字预测) [Kaggle] Digit Recognizer 手写数字识别 [Kaggle] Digit Recognizer 手写数字识别(简单神经网络) 04.卷积神经网络 W1.卷积神经网络
Michael阿明
2021/02/19
1.4K0
[Kaggle] Digit Recognizer 手写数字识别(卷积神经网络)
使用tensorflow构建一个卷积神经网络
本文是对tensforflow官方入门教程的学习和翻译,展示了创建一个基础的卷积神经网络模型来解决图像分类问题的过程。具体步骤如下
生信修炼手册
2021/07/06
8080
使用tensorflow构建一个卷积神经网络
resnet18[通俗易懂]
从上面这幅图可以看出,在一定的训练迭代中,适合的浅层网络要比深层网络有更低的训练误差和测试误差
全栈程序员站长
2022/09/01
1.6K0
resnet18[通俗易懂]
深度学习精要之CapsuleNets理论与实践(附Python代码)
神经网络于上世纪50年代提出,直到最近十年里才得以发展迅速,正改变着我们世界的方方面面。从图像分类到自然语言处理,研究人员正在对不同领域建立深层神经网络模型并取得相关的突破性成果。但是随着深度学习的进一步发展,又面临着新的瓶颈——只对成熟网络模型进行加深加宽操作。直到最近,Hinton老爷子提出了新的概念——胶囊网络(Capsule Networks),它提高了传统方法的有效性和可理解性。
用户3578099
2019/08/16
7640
从零开始,用JupyterLab和TensorFlow打造你的第一个猫狗识别模型
在公园里,三岁孩童能轻松分辨迎面跑来的是小狗还是猫咪,但对计算机而言,这曾是需要顶尖科学家团队攻克的难题。2012年,深度学习在ImageNet竞赛中一战成名,开启了人工智能的"视觉革命"。如今,借助JupyterLab和TensorFlow框架,即使是编程新手也能在笔记本电脑上构建出媲美专业团队的图像识别系统。本文将带你走进深度学习的世界,手把手教你搭建一个能分辨猫狗的智能系统。
不惑
2025/04/01
3110
从零开始,用JupyterLab和TensorFlow打造你的第一个猫狗识别模型
图像分类任务中,Tensorflow 与 Keras 到底哪个更厉害?
转载来源:AI 研习社编译的技术博客 原标题:Tensorflow Vs Keras? — Comparison by building a model for image classificatio
崔庆才
2019/09/04
9560
图像分类任务中,Tensorflow 与 Keras 到底哪个更厉害?
基于卷积神经网络CNN的图像分类
运行结果:Found 1600 validated image filenames belonging to 2 classes.
皮大大
2023/05/05
1.5K0
深度学习图片分类CNN模板
其中A,B,C都代表label,三个文件夹存在具体的图片。只要是这样类型的,直接套下面模板。
润森
2022/09/22
1.1K0
深度学习图片分类CNN模板
推荐阅读
相关推荐
人工智能|备战Tensorflow技能认证之两种快速构建模型的常用方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验