深度学习(一)

深度学习(一)

一、实验目的

掌握前馈全连接神经网络,具体包括:

(1) 前馈全连接神经网络的网络结构

(2) 前馈神全连接经网络的工作原理

(3) 前馈全连接神经网络的代码实现

二、实验内容

1. 导入常用工具包

2. 数据导入与数据观察

3. 数据预处理

4. 前馈全连接神经网络(Sequential模型)

5. 课堂练习:尝试用之前介绍的Sequential()方法,构建前馈全连接神经网络对鸢尾花数据集进行分类

三、实验步骤及结果

1. 导入常用工具包

NumPy: 这是一个强大的数学库,用于进行数值计算。它提供了多维数组对象和一系列数学函数,可以用来处理线性代数、傅里叶变换、随机数等。

Pandas: 这是一个数据分析和操作的库,提供了DataFrame对象,可以用来处理结构化数据(类似于Excel表格)。它支持数据的导入导出、索引、数据清洗、数据可视化等功能。

Matplotlib: 这是一个绘图库,用于创建静态、交互式和动画可视化。它提供了丰富的函数来生成条形图、散点图、线图、饼图等不同类型的图表。

sklearn.datasets: 这是Scikit-learn库的一部分,专门用于加载流行的数据集,如Iris、digits、wine等,用于机器学习实验。

sklearn.model_selection: 同样是Scikit-learn库的一部分,提供了数据集划分、交叉验证、学习曲线等模型选择和评估的功能。

tensorflow.keras.layers: TensorFlow是一个开源的机器学习库,其keras接口提供了一种更简洁、更模块化的方式来构建和训练神经网络。layers模块包含构建神经网络所需的各种层,如Input、Dense(全连接层)、concatenate(拼接层)等。

tensorflow.keras.models: 这是TensorFlow Keras接口的一部分,用于构建和训练模型。Model类是主要的构造块,用于创建神经网络模型。

tensorflow.keras.backend: 这是TensorFlow Keras的底层接口,提供了许多在构建和训练模型时可能需要的底层函数和常量。它允许用户直接与TensorFlow的后端进行交互,进行高级操作。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

from tensorflow.keras.layers import Input, Dense, concatenate

from tensorflow.keras.models import Model

from tensorflow.keras import backend as K

2.数据导入与观察数据

path = "C:/Users/14919/OneDrive/Desktop/工坊/深度学习-工坊/MNIST/"

train_Data = pd.read_csv(path+'mnist_train.csv',header = None) # 训练数据

test_Data= pd.read_csv(path+'mnist_test.csv',header = None) # 测试数据



# 观察数据

print('Train data')

train_Data.info()

print('nTest data')

test_Data.info()

使用Python的pandas库来读取MNIST数据集的训练集和测试集。MNIST数据集是一个手写数字的数据集,包含了0到9的手写数字的图片。

定义=一个路径path,这个路径是指向MNIST数据集所在的文件夹。然后使用pandas的read_csv函数读取训练集和测试集的数据,并将数据的表头设置为None,这意味着数据文件中没有表头。

使用info()函数来观察数据的信息。这个函数会输出数据的基本信息,包括数据的行数、列数、每列的数据类型、非空值的数量等。

x = train_Data.iloc[0] # 取第一行数据

y = x[0] # 标签信息

img = x[1:].values.reshape(28,28) # 将1*784行转化成28*28

plt.imshow(img) # 画图

plt.title('label = '+ str(y))

plt.show()

从MNIST数据集中提取第一行数据,将其解析为图像和对应的标签,并使用matplotlib库来显示这个图像。

x = train_Data.iloc[0]:使用pandas的`iloc`方法来提取训练数据集的第一行。在MNIST数据集中,每一行代表一个手写数字的图像,第一列是标签(即这个图像代表的数字),其余列是图像的像素值。

y = x[0]:从第一行数据中提取第一个元素,即图像的标签。这个标签是一个整数,表示图像中的手写数字。

img = x[1:].values.reshape(28,28):从第一行数据中提取从第二个元素开始的所有元素,即图像的像素值。.values将pandas的Series对象转换为NumPy数组,然后使用reshape方法将这个一维数组转换为一个28x28的二维数组。这是因为MNIST图像的原始大小是28x28像素。

plt.imshow(img):使用matplotlib的imshow函数来显示图像。这个函数可以显示二维数组作为图像。

plt.title('label = '+ str(y)):设置图像的标题,显示图像的标签。

plt.show():调用`show`函数来显示图像。这会在一个新的窗口中显示图像,标题为图像的标签。

3.数据预处理

X = train_Data.iloc[:,1:].values

y = train_Data.iloc[:,0].values

print("数据X中的最大值:",X.max())

print("数据X中的最小值:",X.min())

X = train_Data.iloc[:,1:].values:使用pandas的iloc方法来提取训练数据集中所有行的第2列到最后一列的数据,即所有图像的像素值。.values将提取的数据转换为NumPy数组。这样,X就变成了一个二维数组,其中每个元素都是一个图像的所有像素值,且每个图像展平为一个长度为784(28x28)的一维数组。

y = train_Data.iloc[:,0].values:使用iloc方法提取训练数据集中所有行的第1列数据,即所有图像的标签。这样,y就变成了一个一维数组,其中每个元素都是一个图像对应的数字标签。

print("数据X中的最大值:",X.max()):使用NumPy的max函数来找出X中的最大值,并打印出来。这个最大值代表了图像中像素的最大亮度值,对于MNIST数据集,由于像素值是灰度值,最大值为255,代表白色。

print("数据X中的最小值:",X.min()):使用NumPy的min函数来找出X中的最小值,并打印出来。这个最小值代表了图像中像素的最小亮度值,对于MNIST数据集,最小值为0,代表黑色。

# 归一化

X = X/255

# 此时将数值大小缩小在[0,1]范围内,重新观察数据中的最大、小值

print("数据X中的最大值:",X.max())

print("数据X的最小值:",X.min())

对特征数据X进行了归一化处理。归一化是一种常用的数据预处理技术,它将数据缩放到一个特定的范围,通常是[0, 1]或[-1, 1]。在这个例子中,数据被缩放到了[0, 1]的范围内。

X_valid, X_train = X[:5000],X[5000:]

y_valid, y_train = y[:5000],y[5000:]

X_test,y_test = test_Data.iloc[:,1:].values/255, test_Data.iloc[:,0].values

从原始的MNIST训练数据集中分割出一个验证集和一个新的训练集,并对测试集进行归一化处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/661734.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

国内加密软件排行榜,每一款加密软件都是精品

在数字化快速发展的今天,数据安全和隐私保护已成为企业和个人关注的焦点。加密软件作为保护数据安全的重要手段,其重要性日益凸显。以下是根据权威机构的评测和用户反馈,整理的国内加密软件排行榜及其特点概述。 1、加密软件安企神免费试用7天…

计算机系统基础实验三(解了但尽量理解)

一.准备阶段 1、下载好32位的实验代码后,将文件解压缩并且通过共享文件夹操作将文件添加到虚拟机中,双击查看bomb.c代码,将c代码完整看了一遍,发现看这里的c代码是无从下手的,代码中只含有主函数,触发炸弹…

前缀和(下)

目录 热身: 寻找数组的中心下标 题解: 代码: 进阶: 除自身之外数组的乘积 题解: 代码: 和为K的子数组 题解: 代码: 和可被 K 整除的子数组 题解: 同余定理…

【网络运维的重要性】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

基于单片机的步进电机控制系统研究

摘 要 : 近年来 , 步进电机凭借其定位精度高 、 使用方便 、 性价比高 、 容易控制等优点 , 在各领域受到广泛应用 。 文中利用C52 单片机设计了一种步进电机控制系统 , 介绍了其总体方案 、 主控制模块 、 驱动电路 、 键盘 、 晶…

jmeter多用户并发登录教程

有时候为了模拟更真实的场景,在项目中需要多用户登录操作,大致参考如下 jmx脚本:百度网盘链接 提取码:0000 一: 单用户登录 先使用1个用户登录(先把1个请求调试通过) 发送一个登录请求&…

【Python】解决Python报错:TypeError: ‘int‘ object is not iterable

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

打造云计算时代的仿真软件

2024年5月25日,北京云道智造科技有限公司(下称“云道智造”)在深圳成功举办了2024新品发布会暨用户大会。来自全国各地的近500位客户和合作伙伴代表齐聚一堂,共同见证了云道智造新产品的隆重发布,交流分享了仿真领域的…

模型实战(21)之 C++ - tensorRT部署yolov8-det 目标检测

C++ - tensorRT部署yolov8-det 目标检测 python环境下如何直接调用推理模型转换并导出:pt -> onnx ->.engineC++ tensorrt 部署检测模型不写废话了,直接上具体实现过程+all代码 1.Python环境下推理 直接命令行推理,巨简单yolo detect predict model=yolov8n.pt source…

SQL刷题笔记day6——转战LeetCode

1 第二高的薪水 ​ 我的代码: SELECT Salary SecondHighestSalary FROM Employee ORDER BY Salary DESC LIMIT 1, 1 我的代码不满足示例2的情况:如果没有第 2 高的薪资,即表里可能只有一条记录,这个解答会被评测为 Wrong Answ…

构造+模拟,CF1148C. Crazy Diamond

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1148C - Codeforces 二、解题报告 1、思路分析 题目提示O(5n)的解法了,事实上我们O(3n)就能解决,关键在于1,n的处理 我们读入数据a[],代表初始数组…

模型实战(22)之 C++ - tensorRT部署yolov8-cls 目标分类

C++ - tensorRT部署yolov8-cls 目标分类 在检测应用场景中如果有同等类别不同形态的目标,单纯的目标检测可能达不到实用或者想要的精度,这就需要衔接一步分类python环境下如何直接调用推理模型转换并导出:pt -> onnx ->.engineC++ tensorrt 部署分类模型1.Python环境下…

WWW24因果论文(1/8) | 利用强化学习(智能体)进行因果问答

【摘要】因果问题询问不同事件或现象之间的因果关系。它们对于各种用例都很重要,包括虚拟助手和搜索引擎。然而,许多当前的因果问答方法无法为其答案提供解释或证据。因此,在本文中,我们旨在使用因果关系图来回答因果问题&#xf…

【OrangePi AIpro】开箱初体验以及OAK深度相机测试

1. 简介 Orangepi AIPRO 是一款采用昇腾AI技术路线,集成4核64位处理器AI处理器的单板计算机,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接eMMC模块,支持双4K高清输出。 Orange Pi AIpr…

五个超级好用的Prompt网站,让你的GPT效率碾压旁人!

五个超级好用的Prompt网站,让你的GPT效率碾压旁人! 1. 150 Best ChatGPT Prompts for All Kinds of Workflow 该网站包含了150个能够显著提升工作流程效率的ChatGPT Prompt。从制作引人入胜的内容到简化项目,这些提示应该有助于将 ChatGPT …

爱设计AiPPT.cn赵充:营销工作的AI进化

爱设计&AiPPT.cn是一家 AIGC 数字科技企业,致力于打造「下一代个人与组织的 Ai 工作站」 。目前旗下产品包括AiPPT.cn、爱设计AIGC 内容中台、365 编辑器、爱设计在线设计工具、AiH5 等超过 10 余款应用 AI 能力的内容创作工具。日前,爱设计&AiP…

在Android中解析XML文件并在RecyclerView中显示

1. 引言 最近工作有解析外部xml文件在App中显示的需求&#xff0c;特来写篇文章记录一下&#xff0c;方便下次使用。 2. 准备工作 首先&#xff0c;在项目的AndroidManifest.xml文件中添加读取外部存储的权限声明。 <uses-permission android:name"android.permiss…

渗透测试一些知识点

1、如果提示缺少参数&#xff0c;如{msg&#xff1a;params error}&#xff0c;可尝使用字典模糊测试构造参数&#xff0c;进一步攻击。 2、程序溢出&#xff0c;int最大值为2147483647&#xff0c;可尝试使用该值进行整数溢出&#xff0c;观察现象。 3、403&#xff0c;404响…

CentOS7离线安装Nginx

目录 1. 安装gcc2. 安装g3. 安装openssl4. 安装pcre5. 安装zlib6. 安装Nginx7. 启动nginx8. 开放80端口9. 访问测试10. 设置开机自启 Nginx离线安装需要依赖gcc、g环境&#xff0c;安装前要先检查linux系统中是否自带gcc和g&#xff0c;如果没有就需要先进行安装。 然后再安装o…

webpack快速入门---webpack的安装和基本使用

webpack是什么 本质上&#xff0c;webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时&#xff0c;它会在内部从一个或多个入口点构建一个 依赖图(dependency graph)&#xff0c;然后将你项目中所需的每一个模块组合成一个或多个 bund…