【动手学深度学习】04 数据操作 + 数据预处理(个人向笔记)

news2024/9/21 20:00:32

数据操作

  • N维数组是机器学习和神经网络的主要数据结构
  • 其中 2-d 矩阵中每一行表示每一行表示一个样本
    在这里插入图片描述
  • 当维度来到三维的时候则可以表示成一张图片,再加一维就可以变成多张图片,再加一维则可以变成一个视频
    在这里插入图片描述

访问元素

  • 冒号表示从冒号左边的元素到冒号右边的前一个元素(开区间),其中如果左边为空,那么表示从第一个开始,如果右边为空,那么表示访问到最后一个,如果两边都为空,则表示全部访问
  • 其中一行中我们指定了第一行:1,然后我们想要第一行的所有元素,所以我们把列冒号左右两边的元素都设置为空
  • 下图的列的标注有误,应该为:[:,1]
  • 其中还可以再添加一个冒号,表示访问的间隔,如最后一个示例所示:两个冒号后面的3表示下一次访问+3,两个冒号后面的2表示下一次访问+2
    在这里插入图片描述

数据操作实现

  • 张量(tensor): 一个数值组成的数组,这个数组可能有多个维度,如下图所示是一个一维的,长度为12的向量
  • 把变量放在jupyter的最后一行可以直接把它打印出来

在这里插入图片描述

  • 可以通过 shape 来访问张量的形状和张量中元素的总数,下图所示表示向量的维度为一,有 12 个元素
  • numel 为 number of element 表示总共有 12 个元素
    在这里插入图片描述
  • 可以通过 reshape 来更改张量的形状而不改变元素的个数
    在这里插入图片描述
  • zeros: 创造全 0 的张量
  • ones: 创造全1的张量
  • 2,3,4 可以理解成 2 个通道,3*4 的矩阵。也可以理解为 2 个,3 行,4 列
    在这里插入图片描述
  • 还可以传入列表来生成张量,需要把全部列表都包含在一个列表里面传入:
    在这里插入图片描述
  • 常见的标准运算符:+, -, *, /, ** 都可以被视为tensor间的按元素运算
    在这里插入图片描述
  • 可以用 cat 来进行指定维度的张量连接
    在这里插入图片描述
  • 可以通过逻辑运算符构建二元张量
    在这里插入图片描述
  • 可以对所有元素求和生成一个只有一个元素的张量
    在这里插入图片描述
  • 张量的广播机制: 一个在实际运用中很容易出错的地方。当两个张量的维度相同且两个张量都有一个是一维的,但是每一维的元素数量不同时,数量较少的那个张量会进行复制自己到和数量较大的数量相同后运算。
  • 下图第一维 b 的数量较少,于是 b 又额外复制了两个 [0. 1] 到第一维参与运算。而第二维 a 的数量较少,于是 a 的每个都复制了自身变成了 [0, 0], [1, 1], [2, 2]
    在这里插入图片描述
  • 我们可以指定索引来读取的修改张量:
    在这里插入图片描述
  • 张量操作的内存相关内容: 其中 id 是类似 c 语言指针的东西。下面的第一段代码表示直接用一个相同名字的变量来接收的话是会开辟新的内存的,即使它们名字一样。但是如果是指定所有元素[ : ]的话则不会
    在这里插入图片描述
  • 所以如果后续没有再使用 X 的话,可以用 X[ : ] 来进行操作来减少内存的开销:
    在这里插入图片描述
  • 可以用numpy的数组来构建张量:
    在这里插入图片描述
  • 可以将大小为 1 的张量转化为 python 中的标量:
    在这里插入图片描述

数据预处理实现

  • 课堂代码如下:
    在这里插入图片描述
  • 其中沐神并未解释前面几行代码的含义:问gpt结果如下
    在这里插入图片描述
    在这里插入图片描述
  • 可以用 pandas 里面的 read_csv 来读取csv文件:
    在这里插入图片描述
  • 可以用 iloc 来按索引取文件中的内容
  • 可以用 fillna 来填充数据中的 NaN 值,可以用 mean() 来取数据中的平均值,下面表示用均值填充
    在这里插入图片描述
  • 对于数据中的类别值或者离散值,我们可以将NaN变为一个类别:
    在这里插入图片描述
    在这里插入图片描述
  • 在经过上述处理后,input 和 output 都变成了数值,现在可以转化成 tensor 了
    在这里插入图片描述

Q&A

  • reshape 和 view 的区别:reshape 是浅拷贝,如果修改 reshape 后的张量,那么被 reshape 的张量也会被修改:
    在这里插入图片描述

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

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

相关文章

巨魔商店2安装教程,支持最新iOS 17.0的所有型号

支持iOS15.0到16.6.1、16.7 RC (20H18)和17.0的所有iPhone/iPad。 工具下载地址: https://wwi.lanzoup.com/b0knd3q5g 密码:czhi Windows安装教程: 1,电脑必须安装ITunes,关闭查找我的 iPhone,手机上必须要有提示&…

python imshow报错怎么解决

实例如下所示: import matplotlib.pyplot as plt plt.imshow(img) #控制台打印出图像对象的信息,而图像没有显示 解决方法: #引入pylab解决 import matplotlib.pyplot as plt import pylab plt.imshow(img) pylab.show()

MES管理系统助力企业车间管理可视化

MES管理系统作为连接计划层与现场自动化系统的桥梁,在助力企业车间管理可视化方面发挥着重要作用。以下是MES管理系统如何助力企业车间管理可视化的详细阐述: 一、MES管理系统的概述 MES(制造执行系统)是一种用于生产车间的实时信…

点云数据常见的坐标系有哪些,如何进行转换?

文章目录 一、点云坐标系分类1. 世界坐标系2. 相机坐标系3. 极坐标系4. 笛卡尔坐标系(直角坐标系):5. 传感器坐标系6. 地理坐标系二、坐标系转换方法1. 地理坐标系与投影坐标系之间的转换2. 投影坐标系与局部坐标系之间的转换3. 局部坐标系与3D模型坐标系之间的转换4. 相机坐…

访问修饰符public、protected、private,基于C++

一、基本概念 公有(public)成员 公有成员在程序中类的外部是可访问的。您可以不使用任何成员函数来设置和获取公有变量的值, 私有(private)成员 私有成员变量或函数在类的外部是不可访问的,甚至是不…

部落冲突:精通五个流派,部落战传奇杯横着走,但前提是能精通!

部落冲突:精通五个流派,部落战传奇杯横着走,但前提是能精通! 在部落冲突当中有很多的流派,每个流派都有着属于自己的特点,但是速途同归的每个流派的最终目的都是用来打部落战和传奇杯,日常打资…

MAT:一款针对MSSQL服务器的安全检测与审计工具

关于MAT MAT是一款针对MSSQL服务器的安全检测与审计工具,该工具使用C#开发,可以帮助广大研究人员快速识别和发现MSSQL 服务器中的安全问题,并实现安全检测与审计目的。 功能介绍 1、执行自动检查并识别安全问题; 2、允许通过 Win…

驾驭冰雪 安全无忧,韩泰高性能冬季轮胎新品上市

- 韩泰轮胎推出冬季轮胎新产品Winter i*cept iZ3和SUV专用的Winter i*cept iZ3 X - 新轮胎采用了V型花纹,冰雪路面安全性极佳,而且具有操控性好、续航里程长的优点 - 新轮胎在位于北极圈以北300km的韩泰轮胎芬兰伊瓦洛测试场进行了严苛测试&#xff0c…

将用户证书导入到系统证书

现在大部分app已经不信任用户证书,通过传统charles安装证书抓包的方式已经不行,今天就来说一个将系统证书移动到系统目录的方法,系统证书的目录只有可读权限,有时候挂在目录会不成功 我们先下载如下模块 GitHub - ys1231/MoveCertificate: 支持Android7-14移动证书&#xff0…

【观察者】设计模式:构建灵活且响应式的软件系统

引言 在软件开发中,我们经常面临需要在多个对象之间进行通信的挑战。特别是当一个对象的状态发生变化时,我们希望所有依赖于这个状态的对象都能自动更新。这就是观察者设计模式大显身手的地方。 简介 观察者模式是一种行为设计模式,它定义…

【机器学习】XGBoost的用法和参数解释

一、XGBoost的用法 流程: 代码案例: 二、XGBoost的几大参数 1、一般参数,用于集成算法本身 ①n_estimators 集成算法通过在数据上构建多个弱 评估器,汇总所有弱评估器的建模结果,以获取比单个模型更好的回归或分类…

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_search函数&…

【ZYNQ】OV5640 介绍

OV5640 是 OmniVison (豪威) 公司推出的高性能数字图像传感器,支持最高 500 万像素图像采集,支持 RAW RGB、RGB565、YCbCr422 等图像格式输出。同时 OV5640 可用于图像补偿,包括自动曝光、白平衡、伽马调节、饱和度调节等功能。本文主要介绍 OV5640 工作原理与接口定义。 目…

xss-labs-master通关教程

一.level1 先来进行一下代码审计 <?php ini_set("display_errors", 0);//关闭错误显示 $str $_GET["name"]; //接受URL来的get形式的name传参 echo "<h2 aligncenter>欢迎用户".$str."</h2>";//在网页输出&#x…

HTB-You know 0xDiablos

引言 项目概述&#xff1a;HTB的EASY难度 PWN靶机 You know 0xDiablos https://app.hackthebox.com/challenges/106 本文详细解释了溢出payload的结构以及为什么要这样构造&#xff0c;友好的为想要入手PWN的朋友解释了原理技术点涉及: 32位linux逆向、32位程序调用、栈溢出目…

八叉树CSG布尔运算

1. 前言 布尔运算是几何内核的核心话题之一&#xff0c;又分为二维布尔运算和三维布尔运算&#xff0c;其中三维布尔运算技术难度较高&#xff0c;缘之空间维度的提升。 根据实现的理论不同&#xff0c;三维布尔运算又分为B-Rep布尔运算、CSG布尔运算、三角网格布尔运算等方法…

MySQL5.6.51安装

1 官网下载 MySQL :: Download MySQL Community Server (Archived Versions) 2 解压 3 配置环境 D:\MySQL\mysql-5.6.51-winx64\bin 把这个配置到path后面 4 启动 5 设置初始密码 set password for rootlocalhost password(123456); 6 登录mysql

【数据结构】栈与队列OJ题(用队列实现栈)(用栈实现队列)

目录 1.用队列实现栈oj题 对比 一、初始化 二、出栈 三、入栈 四、取队头元素&#xff1a; 2.用栈实现队列 一、定义 二、入队列 三、出队列 四、队头 五、判空 前言&#xff1a;如果想了解什么是栈和队列请参考上一篇文章进来一起把【数据结构】的【栈与队列】狠…

Cursor是什么?Cursor Pro Plus 如何订阅升级教程

一、Cursor是什么&#xff1f; Cursor 是一个基于 Visual Studio Code&#xff08;VS Code&#xff09;技术构建的高级代码编辑器&#xff0c;专为提高编程效率并更深度地整合 AI 功能而设计。它不仅继承了 VS Code 的强大功能和用户界面&#xff0c;还增加了专门针对 AI 支持…

Kafka3.6.0 linux 安装,非zk模式

1.下载 到kafka官网下载 2.上传到服务器指定位置 3.解压到指定目录&#xff0c;这里我放到/opt下 tar -xzvf kafka_2.13-3.6.0.tgz -C /opt/ 4.修改配置 因为我们不使用zookeeper&#xff0c;所以来到kafka装根目录的下的/config/kraft/ cd /opt/kafka_2.13-3.6.0/config…