(六)人工智能应用--深度学习原理与实战--理解张量与运算图

Tensorflow名称中的Tensor即张量,不仅仅是Tensorflow,几乎所有的深度学习平台都以张量为基本的数据结构。简单来说,张量就是多维数组,本质上是一种数据容器,它可以有任意维度,比如矩阵就是二维张量(二维数组)。

深度学习中使用张量来表示数据,计算图是由张量和张量运算形成的运算结构图,如果把张量作神经网络的原料的话,计算图就相当于神经网络这台机器的齿轮,它用图的形式来表达计算过程-----即数据的计算和流动。Tensorflow名称为张量(Tensor)的流动(flow) 。

主要学习内容:

1)理解和掌握张量的概念、维度(轴 axis)
2)掌握常用数据类型的张量表示,包括:
①向量数据
②时间序列数据
③图像数据
④视频数据
3) 理解和掌握计算图的作用及结构

一、 理解张量的相关概念

在Python中,通常用numpy来存储张量,numpy是个常用的科学计算包,其核结构是Ndarray (即多维数组)。在Tensorflow中的张量Tensor可以和Numpy数组相互转换。

0维张量(标量):

只含有1个数字的张量叫做0维张量,也叫标量。如果把张量比喻成水桶,0维度张量就是只有1滴水的水桶。
请添加图片描述

1维张量

即一维数组,维度个数(轴数)为1。
请添加图片描述

2维张量

即二维数组,维度个数(轴数)为2。

请添加图片描述

3维张量

一个3维张量可以看成是将多个2维张量放入一个1维张量中,形状上相当于一个数字立方体

请添加图片描述

张量的形状改变

使用reshape()方法
reshape前后张量的元素个数(size)相同
reshape的参数中可以只指定部分维度,-1表示该维度由计算得出(size除以其他维度的积)

请添加图片描述

请添加图片描述

3维以上张量

张量可以是任意维度的,除了2维、3维外,常用的还有4维、5
维张量。
(高维相当于低维的堆叠)

请添加图片描述

二、掌握常用数据类型的张量表示

含义

向量数据:2D张量,形状为(samples, features) 。

时间序列数据:3D张量,形状为(sampLes,timesteps, features)。

图像数据:4D张量,形状为(samples,height,width、channels)。

视频数据:5D张量,形状为(samples,frames、height、width、channels)。

注:samples为样本量,features为特征数,timesteps为时序值,channels为图像颜色通道数(如,常见的RGB三个通道),frames为视频的帧数。图像和视频如果为灰度模式,则不需要channels这一维度,会减少一个维度。另外需要注意的是,不同系统中的表示顺序可能会不同,如openCV和TensorfLow中图像张量的表示形式里channels的位置是不同的。

示例

2D张量的例子:
统计1000个人的姓名、年龄和收入3个特征的情况,会形成一个形状(1000,3)的2D张量。也就是一张二维表格,1000行,4列。

3D张量的刚子:
统计1只股票200个交易日内、每个交易日240分钟、每分钟的初始价、最高价、最低价和结束价,会形成一个(200,240,4)的3D张量。如果统计1000只股票,则会形成一个(1000,200,240,4)的4D张量。同理,如果统计5个股票交易所的各1000只股票,则会形成一个(5,1000,200,240,4)的5D张量。即:高维张量是低维张量的堆叠。

如图,一张600 * 600像素的猫的彩色图片(RGB模式),可以用一个形状为:(600,600,3)的3D张量来表示(RGB图片每个像素点有红、黄、蓝3个通道值)。如果有5张猫的图片,那么可以用形状为(5,600,600,3)的4D张量表示。

请添加图片描述

三、理解计算图的作用及结构

计算图是一种表述计算逻辑的图形结构,表现为有向无环图,它定义了数据的流转方式、计算方式、以及各种计算之间的依赖关系。计算图通常由节点和有向边构成:
节点:数据和计算
有向边:数据流、控制流(即依赖关系)

计算图适用于需要大规模计算的环境,配合GPU在并行计算方面的优势可以有效提升计算效率。主流的神经网络框架Tensoflow、Pytorch等都采用计算图结构。

请添加图片描述

了解TensorfLow中的张量和计算图功能

1.TensorfLow中大多数神经网络建模工作现在都可以用更高层的APIKeras方便地实现,但TensorfLow同时也提供了强大的直接操作张量和计算图的功能。

2.TensorfLow提供了张量Tensor的定义、数据类型、类型转换、数值操作、形状变换、算术操作、矩阵运算、索引与切片等各种操作功能,允许开发人员从更底层上构建计算逻辑。

3.TensorfLow2.×版本中已经内置了Keras作为官方推荐的神经网络API,Keras允许模块化地构建神经网络,使用非常方便,受到广泛欢迎。我们后续主要使用Keras API来构建神经网络模型。

四、总结

1.张量(Tensor)是神经网络的基本数据结构,本质上是一种维度任意的多维数据容器。

2.深度学习中使用张量来表示各种数据,如向量数据、时间序列数据、图像数据、视频数据等,需要熟悉它们的形状格式,在神经网络的训练中会经常用到。

3.计算图是张量计算过程的逻辑表示,图运算非常适用于神经网络这种大规模运算场景,配合GPU的并行计算能门能够大幅提高运算效率。

4.TensorfLow提供了在底层直接定义操作张量和计算图的功能,大多数情况下使用Tensorflow推荐的Keras高层API可以模块化地、更高效地构建神经网络模型。

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

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

相关文章

基于 jmeter 和 shell 的接口性能自动化

目录 前言: 1. 总体需求 2. 实现流程 3.准备工作 4.具体实现 4.1 用例执行 主流程脚本 4.2 服务器监控 监控脚本: 服务器监控脚本 4.3 生成 html 报告 html 样式表 发邮件脚本 前言: 基于JMeter和Shell的接口性能自动化是一种有…

如何在 Blender 中更快地渲染?这些技巧需要知道

Blender 是一款开源 3D 建模和动画软件,动画艺术家、产品设计师和游戏创作者经常使用。Blender 不仅允许用户创建 2D 对象或角色并对其进行动画处理以获得 3D 模型,而且 Blender 背后还有强大的艺术家和计算机科学家社区,不断改进代码以提供功…

Appium: Windows系统桌面应用自动化测试(三) 【脚本操作】

Appium: Windows系统桌面应用自动化测试 【脚本操作】 一、常用操作1、添加被测程序1.1示例一:通过程序路径指定应用程序,例如指定写字板程序路径。1.2示例二:通过程序ID指定应用程序,例如指定计算器ID。1.3 应用程序ID&#xff0…

尚硅谷Linux学习笔记

文章目录 1. Linux概述2. Linux目录结构3. Linux操作命令3.1 vim编辑命令3.1.1 一般模式3.1.2 编辑模式3.1.3 指令模式 3.2 网络相关命令3.3 系统管理3.4 帮助命令3.4.1 man 获得帮助信息3.4.2 help 获得 shell 内置命令的帮助信息3.4.3 常用快捷键 3.5 文件目录类3.5.1 pwd、e…

「提高你的CSS技能」:15个重要的CSS属性详解

这篇文章介绍了15个重要的CSS属性,旨在提高读者的CSS知识和技能。文章以清晰的方式解释了每个属性的作用和用法,并提供了相应的示例代码。通过这篇文章,读者可以了解到一些有趣且实用的CSS属性。 1:in-range 和:out-of-range 伪类 CSS的:in…

基于51单片机+SHT30设计的环境温度与湿度检测设备(IIC模拟时序)

一、项目介绍 当前文章介绍基于51单片机和SHT30传感器设计的环境温度与湿度检测设备。设备采用IIC模拟时序通信协议,能够实时监测环境的温度和湿度,并将数据通过LCD显示屏显示出来;可以广泛应用于室内环境监测、气象观测、农业温室监测等领域…

音视频开发实战03-FFmpeg命令行工具移植

一,背景 作为一个音视频开发者,在日常工作中经常会使用ffmpeg 命令来做很多事比如转码ffmpeg -y -i test.mov -g 150 -s 1280x720 -codec libx265 -r 25 test_h265.mp4 ,水平翻转视频:ffmpeg -i src.mp4 -vf hflip -acodec copy …

常用的访问控制权限模型DAC RBAC

常用的访问控制权限模型DAC RBAC 文章目录 常用的访问控制权限模型DAC RBACLinux 自主访问控制与强制访问控制术语概念存取访问控制 Access Control自主访问控制强制访问控制 基于角色的权限控制模型RBAC模型管理方法RBAC0的管理命令RBAC0的系统支持方法RBAC0的高级审查持方法 …

Table Recognition Metric: 表格识别算法评测工具包及相关评测基准数据集

Table Recognition Metric 该库用于计算TEDS指标,用来评测表格识别算法效果。可与魔搭-表格识别测试集配套使用。TEDS计算代码参考:PaddleOCR 和 DAVAR-Lab-OCR 使用说明: Install package by pypi.pip install table_recognition_metricRu…

【SCI一区】互联燃料电池混合动力汽车通过信号交叉口的生态驾驶双层凸优化(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

支付宝接入

支付宝接入 python-alipay-sdk pycryptodome一、电脑网站支付 1.1 获取支付宝密钥 沙箱网址 1.APPID 2.应用私钥 3.支付宝公钥1.2 存放密钥 在与 settings.py 的同级目录下创建 pem 文件夹pem 文件夹下创建 app_private_key.pem 和 alipay_public_key.pem app_private_key…

python pytest脚本执行工具

pytest脚本执行工具 支持获取当前路径下所有.py脚本 添加多个脚本,一起执行 import tkinter as tk from tkinter import filedialog import subprocess import os from datetime import datetimedef select_script():script_path filedialog.askopenfilename(fil…