毕业设计之「测试实验及结果分析」(一)
时间:2022-07-22
本文章向大家介绍毕业设计之「测试实验及结果分析」(一),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
在毕设系列推文的第二章中我们详细介绍了TensorFlow的一些基础知识(TensorFlow 2.0 概述);在第三章(毕业设计之「神经网络与深度学习概述」 (一)、毕业设计之「神经网络与深度学习概述」(二))中对神经网络与深度学习做了简单的概述(主要介绍本章节中完成两个项目所用的一些基础概念)包括激活函数、梯度下降、损失函数、softmax算法等;并且通过简单描述全连接神经网络的不足,详细介绍了卷积神经网络的相关概念。
有了前面几章的基础知识,在本章中,我们会在此基础上介绍两个相关的例子(在此之前会对4.1节中对所用卷积神经网络AlexNet进行详尽的描述):其中包括利用AlexNet完成MNIST手写字的训练和识别(本文所涉及内容)以及毕业设计之「测试实验及结果分析」(二)。
第一个例子是论文中要求指定完成的例子;第二个例子是为了丰富论文成果通过Python爬虫技术收集数据样本集(包括测试集图片和训练集图片,共计3762张图片)、通过搭建AlexNet标准网络结构模型进行训练,并通过测试集图片进行最终结果分析而特别引入的。
图解AlexNet网络结构
MNIST手写字训练和识别
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)
图4.11 卷积神经网络模型图
图4.12 识别率展示图
- Gym 100952E&&2015 HIAST Collegiate Programming Contest E. Arrange Teams【DFS+剪枝】
- Gym 100952H&&2015 HIAST Collegiate Programming Contest H. Special Palindrome【dp预处理+矩阵快速幂/打表解法】
- Gym 100952G&&2015 HIAST Collegiate Programming Contest G. The jar of divisors【简单博弈】
- Gym 100952F&&2015 HIAST Collegiate Programming Contest F. Contestants Ranking【BFS+STL乱搞(map+vector)+
- Gym 100952D&&2015 HIAST Collegiate Programming Contest D. Time to go back【杨辉三角预处理,组合数,dp】
- Gym 100952B&&2015 HIAST Collegiate Programming Contest B. New Job【模拟】
- 51 Nod 1008 N的阶乘 mod P【Java大数乱搞】
- 【AlphaGo Zero 核心技术-深度强化学习教程代码实战06】给Agent添加记忆功能
- Gym 100952A&&2015 HIAST Collegiate Programming Contest A. Who is the winner?【字符串,暴力】
- [开源,学习,分享]UWP第三方简书客户端分享
- HDU 1024 Max Sum Plus Plus【动态规划求最大M子段和详解 】
- 51 Nod 1057 N的阶乘【Java大数乱搞】
- 2017 Multi-University Training Contest - Team 1 1011&&HDU 6043 KazaQ's Socks【规律题,数学,水】
- 2017 Multi-University Training Contest - Team 1 1001&&HDU 6033 Add More Zero【签到题,数学,水】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android webview旋转屏幕导致页面重新加载问题解决办法
- Android系统对话框使用详解(最详细)
- Android webview 遇到android.os.FileUriExposedException错误解决办法
- Android修改字体样式的示例代码
- Android Retrofit 中文乱码问题的解决办法
- Android实现Camera2预览和拍照效果
- Android开发实现webview中img标签加载本地图片的方法
- Android实现二级列表购物车功能
- Android开发仿bilibili刷新按钮的实现代码
- Android获取系统储存以及内存信息的方法(二)
- Android实现简单购物车功能
- 详解升级Android Studio3.0时遇到的几个问题
- Android 动态加载二维码视图生成快照的示例
- 使用Mybatis反配置逆向工程,错误eg:This is not a MyBatis Generator Configu
- DTS(数据库传输服务)