【深度学习】基础数据结构+访问

目录

  • 深度学习中的基础数据结构
    • 1. N维数组
      • 定义
      • 特点
      • 访问元素
    • 2. 机器学习中常用的数据结构
      • N维数组
      • 示例
    • 3. 数学中的访问操作
      • 带跳转的子区域
      • 访问示例
    • 4. 数学中的访问操作
        • 4.1 一维数组(向量)
          • 访问一个区间
          • 带步长的区间访问
        • 4.2 二维数组(矩阵)
          • 访问某一行或某一列
          • 访问子矩阵
        • 4.3 三维数组(张量)
          • 访问某个二维切片
          • 带步长的子区域访问


深度学习中的基础数据结构

在深度学习中,理解和操作数据的基础结构至关重要,主要包括以下几种:

1. N维数组

定义

  • N维数组(Tensor)是深度学习中最常用的数据结构。
  • 包括标量(0维数组)、向量(1维数组)、矩阵(2维数组)、3D数组(张量,3维数组)和更高维度的数组。

特点

  • 标量:只有一个值,例如5。
  • 向量:一维数组,例如[1, 2, 3]。
  • 矩阵:二维数组,例如[[1, 2], [3, 4]]。
  • 3D数组:例如一个包含多张图片的数据结构。
  • 4D数组:常用于批量处理多个3D数组。
  • 5D数组:常用于视频处理,表示多段视频的批量。

访问元素

  • 可以使用索引访问N维数组中的元素。
  • 索引的数量等于数组的维度。

2. 机器学习中常用的数据结构

N维数组

  • 包括标量、向量、矩阵、批量等。
  • 访问和创建这些数组的方法对于深度学习至关重要。

示例

  • 2D数组:如一张图片,可以表示为一个矩阵。
  • 3D数组:如一批图片,可以表示为一堆矩阵。
  • 4D数组:视频的帧数据,可以表示为多个3D数组。
  • 5D数组:批量的视频数据,可以表示为多个4D数组。

3. 数学中的访问操作

带跳转的子区域

  • 访问一个数组的子区域时,可以指定跳跃的步长(stride)。
  • 例如,访问矩阵的子矩阵时,可以通过步长来跳过某些行或列。

访问示例

  • 访问一个向量中的一个区间:array[start:end]
  • 访问一个矩阵中的某一行或某一列:matrix[row, :]matrix[:, column]
  • 通过步长访问带跳跃的子区域:array[start:end:step]

4. 数学中的访问操作

在处理高维数组(如张量)时,访问和操作其子区域是常见的需求。以下是一些具体的访问操作及其示例:

4.1 一维数组(向量)
访问一个区间

通过指定起始位置和结束位置来访问一个区间的元素:

import numpy as np# 创建一个一维数组
vector = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])# 访问从索引2到索引5的元素(不包括索引5)
sub_vector = vector[2:5]
print(sub_vector)  # 输出: [2 3 4]
带步长的区间访问

通过步长来访问带跳跃的元素:

# 访问从索引1到索引8的元素,步长为2
sub_vector_with_stride = vector[1:8:2]
print(sub_vector_with_stride)  # 输出: [1 3 5 7]
4.2 二维数组(矩阵)
访问某一行或某一列

通过指定行或列索引来访问:

# 创建一个二维数组
matrix = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])# 访问第二行(索引从0开始)
second_row = matrix[1, :]
print(second_row)  # 输出: [3 4 5]# 访问第三列
third_column = matrix[:, 2]
print(third_column)  # 输出: [2 5 8]
访问子矩阵

通过指定行和列的范围来访问子矩阵:

# 访问从第一行到第二行,从第一列到第二列的子矩阵
sub_matrix = matrix[0:2, 1:3]
print(sub_matrix)  
# 输出:
# [[1 2]
#  [4 5]]
4.3 三维数组(张量)
访问某个二维切片

通过指定切片索引来访问某个二维切片:

# 创建一个三维数组
tensor = np.array([[[ 0,  1,  2],[ 3,  4,  5],[ 6,  7,  8]],[[ 9, 10, 11],[12, 13, 14],[15, 16, 17]]])# 访问第一个二维切片
first_slice = tensor[0, :, :]
print(first_slice)  
# 输出:
# [[0 1 2]
#  [3 4 5]
#  [6 7 8]]
带步长的子区域访问

通过步长来访问三维数组的子区域:

# 访问第一个二维切片的子区域,步长为2
sub_tensor_with_stride = tensor[0, 0:3:2, 0:3:2]
print(sub_tensor_with_stride)  
# 输出:
# [[0 2]
#  [6 8]]

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

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

相关文章

MD5加密接口

签名算法 app_key和app_secret由对方系统提供 MD5_CALCULATE_HASH_FOR_CHAR(中文加密与JAVA不一致) 代码: *获取传输字段名的ASCII码,根据ASCII码对字段名进行排序SELECT * FROM zthr0051WHERE functionid iv_functionidINTO …

vue3 新增一个菜单A ,进入A页面后 再切换到 菜单B页面时 页面是空白 需要刷新浏览器才起效

由于动态路由加载的状态未被 Vue Router 及时更新导致的 强制 Vue Router 重新渲染组件 在 App.vue 或主布局文件中&#xff0c;添加 key 属性来强制组件重新渲染 <template> <router-view :key"$route.fullPath"></router-view> </templat…

成为有影响力的领导者,必须摒弃弱者气息

在当前的职场环境下&#xff0c;每个人都渴望在职场上取得成功&#xff0c;而成为一个有影响力的领导者&#xff0c;更是是许多人梦寐以求的目标。成为有影响力的领导者不仅能为个人的职业发展开辟广阔的道路&#xff0c;还能激发团队的潜力&#xff0c;引领团队走向成功&#…

Vatee万腾平台:智慧时代的创新典范

在数字化浪潮席卷全球的今天&#xff0c;我们迎来了一个全新的智慧时代。在这个时代&#xff0c;科技与生活的融合变得日益紧密&#xff0c;为人们的生活带来了前所未有的便利与革新。其中&#xff0c;Vatee万腾平台凭借其卓越的创新能力和前瞻性的技术布局&#xff0c;成为了智…

Java中Object类有哪些方法?

在Java中&#xff0c;Object类是所有类的父类&#xff0c;每个类都继承自Object类。Object类提供了许多常用的方法&#xff0c;这些方法可以被所有子类访问和使用。以下是Java中Object类的一些常用方法&#xff1a; 1&#xff1a;getClass() 方法&#xff1a;返回对象的运行时…

如何为您的企业实施营销翻译

要为您的业务实施营销翻译&#xff0c;您需要执行以下步骤&#xff1a; 评估市场需求 你首先需要做的事情之一是确定你的产品或服务可以销售的地区或国家。这可以通过 看看在这些地区已经取得成功的竞争对手阅读行业的市场调查和预测&#xff0c;了解市场趋势和潜在机会评估…

【机器学习基础】误差函数与梯度之间的关系

在机器学习和优化领域中&#xff0c;误差函数&#xff08;也称为损失函数&#xff09;和梯度之间有着密切的关系。以下是它们之间的关系&#xff1a; 1. 误差函数&#xff08;损失函数&#xff09;&#xff1a; - 误差函数是衡量模型预测与实际结果之间差异的函数。它通常用…

易飞8.0工单用料异常分析表

系统自带工单用料分析表看着复杂&#xff0c;但如果用了工单变更单&#xff0c;且下单时候手动改了用量&#xff0c;异常是不会出来。 对此特写一查询报表&#xff0c;根据BOM表来核对&#xff0c;在ERP前台逻辑一对&#xff0c;确实异常出来了。 系统工单&#xff1a; 工单用…

数据库概念结构设计-设计步骤、设计方法、集成中去除冲突和冗余

一、引言 1、如何用实体-联系模型&#xff0c;即ER模型进行数据库的概念结构设计&#xff1f;主要包括概念结构设计的步骤与方法 2、E-R模型用E-R图来描述概念模型中的实体、属性、实体间的联系等概念。 &#xff08;1&#xff09;在E-R模型中&#xff0c;实体用矩形来表示&…

转行AI产品经理,这些“门槛”你得先迈过!

前言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;AI产品经理这一岗位逐渐崭露头角&#xff0c;成为许多追求创新和挑战的职业人士的新选择。但转行并非易事&#xff0c;特别是进入到一个全新的领域。在决定踏上AI产品经理这条道路之前&#xff0c;以下…

推荐5个国内宝藏级物联网平台

随着物联网技术的快速发展物联网平台正成为企业和个人开发者构建智能系统的首选。这些平台以其灵活性、成本效益和强大的社区支持&#xff0c;为用户提供了快速开发和部署物联网解决方案的新途径。本文将介绍几款市场上流行的物联网平台&#xff0c;以及它们各自的技术优势和核…

UI(二)控件

文章目录 PatternLockProgressQRCodeRadioRatingRichTextScollBarSearchSelectSlideSpanStepper和StepperItemTextTextAreaTextClockTextInputTextPickerTextTimerTimePickerToggleWeb PatternLock PatternLock是图案密码锁组件&#xff0c;以九宫格图案的方式输入密码&#x…

数据质量管理-一致性管理

前情提要 根据GB/T 36344-2018《信息技术 数据质量评价指标》的标准文档&#xff0c;当前数据质量评价指标框架中包含6评价指标&#xff0c;在实际的数据治理过程中&#xff0c;存在一个关联性指标。7个指标中存在4个定性指标&#xff0c;3个定量指标&#xff1b; 定性指标&am…

Centos7 Cpolar内网穿透工具

你是否想把本地测试的项目挂载到公网上提供给别人调用查看&#xff08;当然这是在你没有服务器的情况下&#xff0c;如果有请跳过&#xff09; 服务器系统&#xff1a;CentOS-7-x86_64-DVD-2009.iso 这是我在本地测试使用的服务器系统 Coplar官网 注册方式&#xff1a;邮箱注…

维吉尼亚密文解密小程序

维吉尼亚密文解密小程序 这几天在看CTF相关的课程&#xff0c;涉及到古典密码学和近代密码学还有现代密码学。自己编了一个解密小程序。 Vigenere 维吉尼亚密码 维吉尼亚是多表替换密码中比较典型的代表&#xff0c;维吉尼亚密码是在凯撒密码基础上产生的一种加密方法&#…

SAP-SD-修改字段描述

在销售订单中,想修改某字段名的描述,以客户组12为例,如下图 现在想把这个字段修改为客户组1,选择-F1 双击“数据元素” 双击 域 转到-翻译

安卓免费短剧大全v1.0.2/全部无需VIP实时更新全平台短剧

在当今社会&#xff0c;时间成为了许多人最为宝贵的资源。忙碌的工作与繁重的日常事务&#xff0c;常常让我们难以拨出时间沉浸于长篇大幅的影视作品中。对于那些热爱剧情、渴望在生活中点缀一抹戏剧色彩的朋友们而言&#xff0c;这无疑是一种挑战。 然而&#xff0c;随着免费…

Windows安全中心打开白屏的解决方法

方法一&#xff08;无效可以尝试方法二三&#xff09;&#xff1a; 1. 复制以下内容&#xff0c;打开记事本粘贴并保存&#xff0c;同时将记事本文件的【txt后缀名改为reg】:  Windows Registry Editor Version 5.00&#xff3b;HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microso…

cesium全家桶总目录

文章目录 Cesium全家桶总目录1 MyCesiumJS Basic1.1 使用Vite TypeScript搭建开发环境1.2 加载在线瓦片地图数据1.3 加载离线地图数据1.4 加载多种格式外部数据1.5 卫星云图1.6 浏览器控制台查看位置角度1.7 绘制直线段以避免地球曲率的影响1.8 通过canvas绘制billboard1.9 切…