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

简介: 在毕设系列推文的第二章中我们详细介绍了TensorFlow的一些基础知识(TensorFlow 2.0 概述);在第三章(毕业设计之「神经网络与深度学习概述」 (一)、毕业设计之「神经网络与深度学习概述」(二))中对神经网络与深度学习做了简单的概述(主要介绍本章节中完成两个项目所用的一些基础概念)包括激活函数、梯度下降、损失函数、softmax算法等;并且通过简单描述全连接神经网络的不足,详细介绍了卷积神经网络的相关概念。

前言


在毕设系列推文的第二章中我们详细介绍了TensorFlow的一些基础知识(TensorFlow 2.0 概述);在第三章(毕业设计之「神经网络与深度学习概述」 (一)毕业设计之「神经网络与深度学习概述」(二))中对神经网络与深度学习做了简单的概述(主要介绍本章节中完成两个项目所用的一些基础概念)包括激活函数、梯度下降、损失函数、softmax算法等;并且通过简单描述全连接神经网络的不足,详细介绍了卷积神经网络的相关概念。


有了前面几章的基础知识,在本章中,我们会在此基础上介绍两个相关的例子(在此之前会对4.1节中对所用卷积神经网络AlexNet进行详尽的描述):其中包括利用AlexNet完成MNIST手写字的训练和识别(本文所涉及内容)以及毕业设计之「测试实验及结果分析」(二)


第一个例子是论文中要求指定完成的例子;第二个例子是为了丰富论文成果通过Python爬虫技术收集数据样本集(包括测试集图片和训练集图片,共计3762张图片)、通过搭建AlexNet标准网络结构模型进行训练,并通过测试集图片进行最终结果分析而特别引入的。



图解AlexNet网络结构


微信图片_20220611011000.png

微信图片_20220611011008.png

微信图片_20220611011015.png

微信图片_20220611011021.png

微信图片_20220611011027.png

微信图片_20220611011032.png

微信图片_20220611011037.png

微信图片_20220611011041.png

微信图片_20220611011045.png

微信图片_20220611011050.png



MNIST手写字训练和识别


微信图片_20220611011055.png

微信图片_20220611011059.png


import TensorFlow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train.reshape(-1,28,28,1) / 255.0, x_test.reshape(-1,28,28,1) / 255.0
# 毕业设计参数要求:卷积层3层、池化层3层、Relu3层,全连接层1层,连接单元数1024
model = tf.keras.models.Sequential([
  tf.keras.layers.Conv2D(input_shape = (28,28,1),filters = 32,kernel_size = 5,strides = 1,padding = "same",activation = "relu"),  # 28*28
  tf.keras.layers.MaxPool2D(pool_size = 2,strides = 2,padding = 'same'),  # 14*14
  tf.keras.layers.Conv2D(64,5,strides=1,padding='same',activation='relu'),  # 14*14
  tf.keras.layers.MaxPool2D(2,2,'same'),  # 7*7
  tf.keras.layers.Conv2D(64,5,strides=1,padding='same',activation='relu'), # 7*7
  tf.keras.layers.MaxPool2D(2,2,'same'), # 3*3
  tf.keras.layers.Flatten(),  # 64*3*3
  tf.keras.layers.Dense(1024,activation='relu'),
  tf.keras.layers.Dropout(0.5),
  tf.keras.layers.Dense(10,activation = 'softmax'),
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy',metrics=['accuracy'])
model.fit(x_train, y_train, batch_size=32,epochs=5)


微信图片_20220611011104.png

4.11 卷积神经网络模型


微信图片_20220611011108.png

4.12 识别率展示图


相关文章
|
23天前
|
NoSQL Linux Android开发
内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
本文介绍了如何在QEMU中挂载虚拟分区、创建和编译简单的Linux内核模块,并在QEMU虚拟机中加载和测试这些内核模块,包括创建虚拟分区、编写内核模块代码、编译、部署以及在QEMU中的加载和测试过程。
82 0
内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
|
7天前
|
SQL 搜索推荐 测试技术
ChatGPT与测试分析
本产品需求文档(PRD)针对论坛网站的搜索功能优化,旨在提升搜索结果的准确性和速度,增强用户体验。文档涵盖项目背景、目标、功能需求(如搜索结果准确性、搜索速度优化、过滤和排序等)、非功能需求(如兼容性、性能、安全性等)、用户界面设计和技术架构等内容,并制定了详细的测试和上线计划,确保项目顺利实施。
9 0
|
29天前
|
前端开发 测试技术 UED
【测试效率对比】深入分析:为何UI自动化测试的投资回报率通常低于接口自动化测试?
这篇文章深入分析了UI自动化测试与接口自动化测试的投资回报率(ROI)问题,指出UI自动化测试在某些情况下的ROI并不低,反驳了没有实施过UI自动化就轻易下结论的观点,并强调了实践的重要性和自动化测试在项目迭代中的作用。
48 1
|
3月前
|
存储 缓存 NoSQL
Redis性能测试实操记录与分析
Redis性能测试实操记录与分析
44 3
|
3月前
|
SQL 监控 中间件
【应急响应】拒绝服务&钓鱼指南&DDOS压力测试&邮件反制分析&应用日志
【应急响应】拒绝服务&钓鱼指南&DDOS压力测试&邮件反制分析&应用日志
|
3月前
|
安全 测试技术
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
63 1
|
4月前
|
监控 测试技术
深入分析软件测试中的风险评估与管理
【5月更文挑战第30天】 在软件开发生命周期中,风险无处不在,特别是在软件测试阶段。本文旨在探讨软件测试过程中如何有效地进行风险评估和管理,以确保软件质量和项目成功。文中将介绍风险评估的基本概念,提出一个结构化的风险识别和评估框架,并详细讨论如何通过定性和定量方法来管理测试风险。此外,文章还将展示一个案例研究,以说明所提策略在实际中的应用效果。
|
3月前
|
Java
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
71 0
|
4月前
|
机器学习/深度学习 敏捷开发 人工智能
深入分析自动化测试中的挑战与机遇
【5月更文挑战第31天】 在软件开发的不断进步和迭代中,自动化测试作为提升效率、确保质量的重要手段,其地位愈发凸显。本文将深入探讨实施自动化测试过程中遭遇的技术挑战,如维护成本、复杂场景模拟等,并剖析其中的机遇,包括持续集成的协同优势和最新的AI辅助技术。通过具体案例分析和前沿技术趋势预测,旨在为软件测试工程师提供全面的视角,以应对未来自动化测试的发展需求。
|
4月前
|
监控 jenkins 测试技术
提升软件测试效率与准确性的策略分析
【5月更文挑战第31天】 在软件开发生命周期中,测试工作占据了举足轻重的地位。本文旨在探讨提高软件测试效率和准确性的有效策略。通过对自动化测试工具的选择、测试用例的优化设计、持续集成系统的整合以及性能测试的关键指标分析,本文提出了一系列创新的方法和实践建议。这些策略不仅能够减少人力资源消耗,还能显著提高软件产品的质量和稳定性。