TensorFlow框架

news/2024/11/28 8:47:19/

TensorFlow框架

本文目录:

一、通过代码了解TensorFlow结构

1.1、TensorFlow实现一个加法运算代码

1.1.1、原生python加法运算

1.1.2、TensorFlow实现加法运算

1.1.3、TensorFlow实现加法运算

1.2、TensorFlow的Hello World

二、TensorFlow架构图

三、TensorFlow结构分析

3.1、张量(Tensor)

3.2、节点(Operation)

3.3、会话(Session)

3.4、数据流图介绍(Graph)

四、附录


一、通过代码了解TensorFlow结构

  我们通过简单的TensorFlow代码,大概了解一下TensorFlow结构:

1.1、TensorFlow实现一个加法运算代码

1.1.1、原生python加法运算

import tensorflow as tf
def tensorflow_demo():
#TensorFlow的基本结构
#: return:
#原生python加法运算a=2b=3c=a+bprint("普通加法运算的结果:", c)
if __name__ == "__main__":tensorflow_demo()

运行结果:

普通加法运算的结果:5

1.1.2、TensorFlow实现加法运算

import tensorflow as tf
def tensorflow_demo():
#TensorFlow的基本结构
#: return:
#原生python加法运算a=2b=3c=a+bprint("普通加法运算的结果:", c)
# TensorFlow实现加法运算a_t=tf. constant(2)b_t=tf. constant(3)c_t=a_t+b_tprint ("TensorFlow加法运算的结果:\n", c_t)return None
if __name__ == "__main__":tensorflow_demo()

运行结果:

普通加法运算的结果:5

TensorFlow加法运算的结果:
Tensor("add_1:0", shape=(), dtype=int32)

输出的结果不是我们理解的格式,调整一下代码

1.1.3、TensorFlow实现加法运算

import tensorflow as tf
def tensorflow_demo():
#TensorFlow的基本结构
#: return:
#原生python加法运算a=2b=3c=a+bprint("普通加法运算的结果:", c)# TensorFlow实现加法运算a_t=tf.constant(2)b_t=tf.constant(3)c_t=a_t+b_tprint ("TensorFlow加法运算的结果:\n", c_t)#开启会话with tf.Session() as sess:c_t_value = sess.run(c_t)print("c_t_value的值是:", c_t_value)  return Noneif __name__ == "__main__":tensorflow_demo()

运行结果:

普通加法运算的结果:5

TensorFlow加法运算的结果:
Tensor("add_1:0", shape=(), dtype=int32)

c_t_value的值是:5

1.2、TensorFlow的Hello World

  我们用一段TensorFlow代码输出类似Hello World的效果,

import tensorflow as tf
# 创建一个常量Operation
saya = tf.constant("I hope that every decision you make is firm and certain, that the person in front of you is your sweetheart, and that every day of yours is worth remembering!")
# 启动会话
sess = tf.Session()
# 运行Graph(计算图)
print(sess.run(saya))
# 关闭会话
sess.close()

运行结果:

b'I hope that every decision you make is firm and certain, that the person in front of you is your sweetheart, and that every day of yours is worth remembering!'

# 我希望你的每个决定都坚决而确定,希望你的眼前人就是你的心上人,希望你的每一天都值得怀念!

二、TensorFlow架构图

(图片来源于网络,地址见附录)

  TensorFlow是一个使用数据流图进行数值计算的开源软件库。 图形节点表示数学运算,而图形边缘表示在它们之间流动的多维数据阵列(张量)。

  这种灵活的体系结构使您可以将计算部署到桌面,服务器或移动设备中的一个或多个CPU或GPU,而无需重写代码。

  TensorFlow还包括TensorBoard,一种数据可视化工具包。

Tensoerflow支持的高级特性:

  • 高度的灵活性:通过构件计算图能实现任意目的的计算
  • 高可移植性(Portability):Tensorflow 在CPU和GPU上运行,比如说可以运行在台式机、服务器、手机移动设备等等。
  • 将科研和产品联系在一起
  • 自动求微分:基于梯度的机器学习算法会受益于Tensorflow自动求微分的能力。
  • 多语言支持:Tensorflow 有一个合理的c++使用界面,也有一个易用的python使用界面来构建和执行你的graphs。
  • 性能最优化:由于Tensorflow 给予了线程、队列、异步操作等以最佳的支持,能发挥硬件全部潜能。

TensorFlow系统框架有三大部分组成

第一部分是一个前端框架,Front End。

第二部分,就是中间的这个capi。

第三部分是一个后端的Exec System执行的一个操作系统。

前端系统:它主要是负责提供TensorFlow的一个编程模型,构造计算图和管理session的周期。

后端系统:提供运行时环境,负责执行计算图。

后端系统的设计和实现可以进一步分解为 4 层。

  • 运行时:分别提供本地模式和分布式模式,并共享大部分设计和实现 ;
  • 计算层:由各个 OP 的 Kernel 实现组成;在运行时,Kernel 实现执行 OP 的具体数学运算;
  • 通信层:基于 gRPC 实现组件间的数据交换,并能够在支持 IB 网络的节点间实 现 RDMA 通信;
  • 设备层:计算设备是 OP 执行的主要载体,TensorFlow 支持多种异构的计算设备 类型。

三、TensorFlow结构分析

TensorFlow的基本要素

3.1、张量(Tensor)

  张量: TensorFlow 中的基本数据对象。是TensorFlow中的一个非常基本的一个要素,对神经网络高维度的表达方式。

  TensorFlow中的张量(tensor)是一个多维数组,它是TensorFlow中的基本数据类型。可以将张量视为一种数据容器,其中的数据可以是数字、字符串等类型的值。TensorFlow中的所有计算都是在张量之间进行的。

  张量的每一个维度都代表着张量的一个属性,例如一个二维张量可以代表一个矩阵,其中第一个维度代表行数,第二个维度代表列数。在TensorFlow中,每个张量都有一个静态类型和一个运行时维度大小。静态类型定义了张量的形状(例如,它有多少个维度和每个维度的大小),而运行时维度大小则指定了张量的实际大小。张量可以是常量或者变量,常量的值在创建后不能被改变,而变量的值可以通过训练等方法进行更新。

  在TensorFlow中,通过张量进行数据的表示和计算,可以有效地处理大规模的数值计算问题。

张量(Tensor)在TensorFlow中,张量的维度被描述为“阶”,但是,张量的阶和矩阵的阶并不是同一个概念,张量的阶,是张量维度的一个数量的描述。

x=3零阶张量        (纯量)

v=[1.1,2.2,3.3]           一阶张量(向量)

t=[[1,2,3],[4,5,6],[7,8,9]]           二阶张量(矩阵)379373142

m=[[[2],[4], [6]],[[8],[10],[12]],[[14],[16],[18]]]        三阶张量(立方体)

3.2、节点(Operation)

  TensorFlow 中的节点(Operation)是计算图(computation graph)中的基本单位,它可以表示数学运算、数据输入输出或者控制流程等。

  每个节点都有零个或者多个输入值,以及一个输出值。

  在 TensorFlow 中,节点的输入和输出都是张量(tensor),即多维数组,节点对张量进行操作后产生新的张量。

  节点可以通过 TensorFlow 中的 API 进行创建,每个节点都有一个唯一的名称,并且可以指定节点的操作类型(例如加法、乘法、卷积等)。

  在 TensorFlow 中,节点是按照依赖关系构成的有向无环图(DAG),节点之间的边表示数据的依赖关系,即前一个节点的输出张量作为后一个节点的输入张量。

  通过构建计算图来描述深度学习模型的结构和计算过程,然后利用计算图来执行模型的训练和预测任务。

3.3、会话(Session)

  无论是在TensorFlow也好,或者是来任何框架,任何语言中。都有这么一个会话的概念,会话实际量就是管理着一个模型或者一个函数或者说一个操作开始到结尾整个的这么一场流程。

  TensorFlow 会话(Session)是 TensorFlow 中用来运行计算图(Graph)的类。

  计算图是由一系列的 TensorFlow 操作(Operation)组成的,每个操作有零个或多个输入和输出,代表了一种对数据进行转换或操作的方式。会话负责分配计算资源(如 CPU 或 GPU)来执行这些操作,并保存操作执行的中间结果。

  使用会话可以实现 TensorFlow 中的延迟执行机制。

  在创建计算图时,仅仅是定义或描述了计算图的结构,而没有运行任何计算操作。在会话中,可以多次运行计算图,每次运行时传入新的计算数据,而会话会自动地将计算图中的操作按照依赖关系进行调度和执行,并得到最终的结果。同时,会话还可以控制计算资源的分配、内存管理、模型的保存和恢复等功能。

3.4、数据流图介绍(Graph)

  TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源框架。

  一个TensorFlow在运行的过程中,它会有需要进行计算,计算中会有很多节点,很多操作,这些节点和操作就组成了一个图。

  代表模型的数据流,由多个ops(操作即节点)和tensor(数据流即边)组成,算法都会表示成计算图(数据流图),可看作是有向图,张量就是通过各种操作在有向图中流动。

  在TensorFlow中,要想启动一个图的前提是要先创建一个会话(Session) -TensorFlow的所有对图的操作, 都必须放在会话中进行。

 线(edges) 则表示在节点间相互联系的多维数据数组,即张量(tensor)。

TensorFlow 程序通常被组织成:

一个构建图阶段:流程图(定义数据:张量 Tensor 与操作:节点 Op)。

一个执行图阶段:调用各方支援,将定义好的操作与数据运行起来。

在构建阶段,数据与操作的执行步骤被描述成一个图。

在执行阶段,使用会话执行构建好的图中的操作。

图和会话:

图:这是 TensorFlow 将计算表示为指令之间的依赖关系的一种表示法。

会话: TensorFlow 跨一个或多个本地或远程设备运行数据流图的机制。

节点:提供图当中执行的操作。

四、附录

图文参考:网络收集资料

阿里课程
https://blog.csdn.net/shareviews/article/details/83094558

              推荐阅读:
 

让Ai帮我们画个粽子,它会画成什么样呢?

给照片换底色(python+opencv)猫十二分类基于大模型的虚拟数字人__虚拟主播实例

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

 语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

93d65dbd09604c4a8ed2c01df0eebc38.png

 matplotlib 自带绘图样式效果展示速查(28种,全)

074cd3c255224c5aa21ff18fdc25053c.png

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

fe88b78e78694570bf2d850ce83b1f69.png

cb4b0d4015404390a7b673a2984d676a.png

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

 让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

e84d6708316941d49a79ddd4f7fe5b27.png

938bc5a8bb454a41bfe0d4185da845dc.jpeg

0a4256d5e96d4624bdca36433237080b.png

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

dc8796ddccbf4aec98ac5d3e09001348.jpeg

0f09e73712d149ff90f0048a096596c6.png

40e8b4631e2b486bab2a4ebb5bc9f410.png

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

09e08f86f127431cbfdfe395aa2f8bc9.png

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

03ed644f9b1d411ba41c59e0a5bdcc61.png

daecd7067e7c45abb875fc7a1a469f23.png

17b403c4307c4141b8544d02f95ea06c.png

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

4d9032c9cdf54f5f9193e45e4532898c.png

c5feeb25880d49c085b808bf4e041c86.png

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

80007dbf51944725bf9cf4cfc75c5a13.png

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg

1750390dd9da4b39938a23ab447c6fb6.jpeg

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2023年4月多家权威机构____编程语言排行榜__薪酬状况

aa17177aec9b4e5eb19b5d9675302de8.png

38266b5036414624875447abd5311e4d.png

6824ba7870344be68efb5c5f4e1dbbcf.png

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

fea225cb9ec14b60b2d1b797dd8278a2.png

bba02a1c4617422c9fbccbf5325850d9.png

37d6aa3e03e241fa8db72ccdfb8f716b.png

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

5d409c8f397a45c986ca2af7b7e725c9.png

6176c4061c72430eb100750af6fc4d0e.png

1f53fb9c6e8b4482813326affe6a82ff.png

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

fffa2098008b4dc68c00a172f67c538d.png

5218ac5338014f389c21bdf1bfa1c599.png

c6374d75c29942f2aa577ce9c5c2e12b.png

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)


http://www.ppmy.cn/news/715580.html

相关文章

找不到wifi信号,但是连得上热点?

许多人使用电脑时偶尔会碰到这种问题, 笔记本连的上热点,但是却找不到wifi信号,手机却能找到。 这时候需要在这几方面进行排查。本文章仅限于win10系统。 1.确认驱动是否有问题:右键开始菜单打开设备管理器。 无线网卡下出现感叹号…

家里wifi网速越来越慢_WiFi网速越来越“慢”?中国电信告诉你答案

我们很多时候都会遇到WiFi网速变慢的情况,那它是什么原因导致的呢,中国电信列举出了以下几种: 1、路由器摆放位置不当:路由器的摆放位置对网速是有一定影响的,当WiFi信号穿越承重墙体、玻璃或者液体的时候,…

C++在线五子棋对战(网页版)项目:websocket协议

目标:认识理解websocket协议、websocket切换过程和websocket协议格式。认识和学会使用websocketpp库常用接口。了解websocketpp库搭建服务器流程,认识和学会使用websocketpp库bin接口,最后使用websocketpp库搭建服务器。 初识websocket WebS…

Ubuntu20.04 wifi连不上或频繁掉线解决办法

一、新装Ubuntu20.04后发现wifi连不上,提示网络激活失败,经一番研究发现是网卡驱动问题。解决办法如下: 点击左下角“显示应用程序”按钮,找到“软件和更新”双击打开,单击“附加驱动”选项卡,选择使用Bro…

无线wifi经常掉线或者不太稳定怎么办?

很多朋友喜欢使用pc电脑连接wifi,这样做有很多的好处,节省了有线网络数据线,尤其家里牵上一根长长的网络数据线,既占用地方,而且非常的难看,很不美观,所以现在有很多人宁愿花上十几块钱&#xf…

wifi丢包率高怎么解决_几招解决无线路由器网速慢,断网丢包不稳定

Wifi的出现使得上网更加方便快捷,当你专注的玩着手机或电脑时,信号却变得非常差,甚至打开不了网页了,可通过网线上网的台式机网速却很正常,这着实是一件令人抓狂的事。不仅仅是网速慢,有时,wifi…

一个操作解决路由器WiFi网络不稳定经常断网的现象

工作环境(蓝色粗体字为特别注意内容) 1,系统环境:Windows 7系统 2,路由器:斐讯路由器 单位是公用的网络,每个桌子只有一根网线,并且需要使用账户密码进行登录之后才能够正常上网,而本人电子设…

wifi卡慢延迟高_家里WIFI越用越卡?教你3个小方法,彻底解决网速慢、卡顿等问题...

相信各位小伙伴都遇到过家里Wi-Fi网络频繁卡顿的现象,当遇到这种情况是大多数人的第一反应就是“有其他人在蹭家里的Wi-Fi”,为此便会将自家的Wi-Fi密码改成长串数字复杂字母的形式,但结果不仅没能让网速变好,反而让自己为了记住密…