深度学习(一)

深度学习(一)

一、实验目的

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

(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 npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom tensorflow.keras.layers import Input, Dense, concatenatefrom tensorflow.keras.models import Modelfrom 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*28plt.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:].valuesy = 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训练数据集中分割出一个验证集和一个新的训练集,并对测试集进行归一化处理。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型对齐方法笔记二:基于Rank的对齐方法RRHF和PRO

文章目录 RRHFPRO将RLHF嫁接到PRO 参考资料 RRHF RRHF(Rank Responses to align Human Feedback)出自2023年4月的论文《RRHF: Rank Responses to Align Language Models with Human Feedback without tears》,是较早提出的不需要使用PPO来对齐人类偏好的方法。 设…

nginx安装部署问题

记一次nginx启动报错问题处理 问题1 内网部署nginx,开始执行make,执行不了,后面装了依赖的环境 yum install gcc-c 和 yum install -y pcre pcre-devel 问题2,启动nginx报错 解决nginx: [emerg] unknown directive “stream“ in…

Keil5 ~STM32报错Solutions#1

一、error: #268: declaration may not appear after executable statement in block

Thingsboard规则链:Customer Details节点详解

在物联网(IoT)平台Thingsboard的规则引擎体系中,Customer Details节点是一个功能强大的组件,它专为处理与客户(Customer)实体相关的综合信息而设计。这个节点不仅能够读取客户的基本属性,还能提…

【NumPy】全面解析subtract函数:高效数组减法指南

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

GPT-4o:人工智能新纪元的开端

引言 近年来,人工智能领域的发展日新月异,特别是在自然语言处理(NLP)领域,各种生成预训练模型不断推陈出新。自OpenAI发布GPT-3以来,生成预训练模型在文本生成、语言理解等任务中展现了强大的能力。近期&a…

网工内推 | 国企信息安全工程师,CISP认证优先

01 浙江省公众信息产业有限公司 🔷招聘岗位:安全运营工程师 🔷职责描述: 1. 负责公司内部安全运营平台及其子系统的安全事件管理、事件发现分析、应急响应和系统维护等; 2. 负责风险和漏洞管理,包括漏洞预…

一行命令将已克隆的本地Git仓库推送到内网服务器

一、需求背景 我们公司用gitea搭建了一个git服务器,其中支持win7的最高版本是v1.20.6。 我们公司的电脑在任何时候都不能连接外网,但是希望将一些开源的仓库移植到内网的服务器来。一是有相关代码使用的需求,二是可以建设一个内网能够查阅的…

2019美亚

1.何源是一名 25 岁的客服人员,在一间电讯公司工作。某日,何源在用 iPhone 手机在政府建筑物 中偷拍车牌期间被警员截停,盘问期间警员检查手机相册发现多张车牌图片,何源情绪紧张,趁 警员不被,抢过手机丢入…

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

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

OrangePi Kunpeng Pro 开发板测评 | AI 边缘计算 大模型部署

0 前言 此次很幸运能够参与 OrangePi Kunpeng Pro 开发板的测评,感谢 CSDN 给予这次机会。 香橙派联合华为发布了基于昇腾的 OrangePi Kunpeng Pro 开发板,具备 8TOPS 的 AI 算力,能覆盖生态开发板者的主流应用场景,具备完善的配…

ai写作助手有哪些,5款强大的ai写作工具为你所用

在科技日新月异的时代,人工智能已经悄然走进我们的生活,为我们带来了诸多便利。其中,AI写作助手作为一种创新的工具,正在改变着我们的写作方式。它们不仅能够提供创意灵感,还能帮助我们提高写作效率,让文字…

【RAG论文】文档树:如何提升长上下文、非连续文档、跨文档主题时的检索效果

RAPTOR Recursive Abstractive Processing for Tree-Organized RetrievalICLR 2024 Stanfordhttps://arxiv.org/pdf/2401.18059 RAPTOR(Recursive Abstractive Processing for Tree-Organized Retrieval)是一种创建新的检索增强型语言模型,它…

《Intel开发手册卷3》读书笔记3

1、中断和异常的概述 中断和异常是强制性的执行流的转移,从当前正在执行的程序或任务转移到一个特殊的称作句柄的例程或任务。当硬件发出信号时,便产生中断,中断的产生同正在执行的程序是异步的,即中断的产生是随机的。其用于处理…

JVM(四)

在上一篇中,介绍了JVM组件中的运行时数据区域,这一篇主要介绍垃圾回收器 JVM架构图: 1、垃圾回收概述 在第一篇中介绍JVM特点时,有提到过内存管理,即Java语言相对于C,C进行的优化,可以在适当的…

【Postman接口测试】第四节.Postman接口测试项目实战(上)

文章目录 前言一、项目介绍 1.1 项目界面功能介绍 1.2 项目测试接口介绍 1.3 项目测试接口流程二、HTTP协议三、接口测试中接口规范四、项目合同新增业务介绍 4.1 登录接口调试 4.1 登录接口自动关联 4.1 添加课程接口调试 4.1 上传合同…

Leetcode算法题笔记(3)

目录 矩阵101. 生命游戏解法一解法二 栈102. 移掉 K 位数字解法一 103. 去除重复字母解法一 矩阵 101. 生命游戏 根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子…

.NET 直连SAP HANA数据库

前言 上个项目碰到的需求,IT部门要求直连SAP的HANA数据库,以只读的权限读取SAP部门开发的CDS视图,是个有点复杂的工程,需要从成品一直往前追溯到原材料的产地,和交货单、工单、采购订单有相当程度上的关联 IT部门要求…

基于java实现图片中任意封闭区域识别

需求: 在浏览器中给用户呈现一张图片,用户点击图片中的某些标志物,需要系统给出标志物的信息反馈,达到一个交互的作用。 比如下图中,点击某个封闭区域时候,需要告知用户点击的区域名称及图形形状特性等等。…

【因果推断python】2_因果关系初步2

目录 偏差 关键思想 偏差 偏差是使关联不同于因果关系的原因。幸运的是,我们的直觉很容易理解。让我们在课堂示例中回顾一下我们的平板电脑。当面对声称为孩子提供平板电脑的学校会获得更高考试成绩的说法时,我们可以反驳说,即使没有平板电…