TensorFlow框架

news2024/11/18 4:22:13

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=2
    b=3
    c=a+b
    print("普通加法运算的结果:", c)
if __name__ == "__main__":
    tensorflow_demo()

运行结果:

普通加法运算的结果:5

1.1.2、TensorFlow实现加法运算

import tensorflow as tf
def tensorflow_demo():
#TensorFlow的基本结构
#: return:
#原生python加法运算
    a=2
    b=3
    c=a+b
    print("普通加法运算的结果:", c)
# TensorFlow实现加法运算
    a_t=tf. constant(2)
    b_t=tf. constant(3)
    c_t=a_t+b_t
    print ("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=2
    b=3
    c=a+b
    print("普通加法运算的结果:", c)
    # TensorFlow实现加法运算
    a_t=tf.constant(2)
    b_t=tf.constant(3)
    c_t=a_t+b_t
    print ("TensorFlow加法运算的结果:\n", c_t)

    #开启会话
    with tf.Session() as sess:
        c_t_value = sess.run(c_t)
        print("c_t_value的值是:", c_t_value)  
    return None

if __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.coloradmin.cn/o/705492.html

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

相关文章

WebRTC Docker容器部署方案

文章目录 WebRTC简介WebRTC Docker容器部署优势方案(mpromonet/webrtc-streamer)步骤 WebRTC简介 WebRTC(Web Real-Time Communication)是一种开放的实时通信技术,它允许浏览器之间进行音频、视频和数据的实时传输。W…

第九十二天学习记录:C++核心:类和对象Ⅰ(五星重要)

C面向对象的三大特性为:封装、继承、多态 C认为万事万物都皆为对象,对象上有其属性和行为 封装 封装的意义 封装是C面向对象三大特性之一 封装的意义: 1、将属性和行为作为一个整体,表现生活中的事物 2、将属性和行为加以权限…

js判断文件类型详解

js判断文件类型详解 通过file的type属性判断 <input type"file" onchange"onchangecb(this)" /> <script> function onchangecb(e) {const file e.files[0];console.log(file.type); } </script>像html中input标签&#xff0c;就是根…

地下水数值模拟-Visual modflow Flex软件应用

地下水&#xff08;ground water&#xff09;&#xff0c;是指赋存于地面以下岩石空隙中的水&#xff0c;狭义上是指地下水面以下饱和含水层中的水。在国家标准《水文地质术语》&#xff08;GB/T 14157-93&#xff09;中&#xff0c;地下水是指埋藏在地表以下各种形式的重力水。…

基于协议判断目标机器是否出网

内网渗透中时常会碰到一些不出网的主机&#xff0c;不出网的原因有很多&#xff0c;如常见的有&#xff1a;没有设置网关、系统防火墙或者其他设备设置了出入站限制&#xff0c;只允许特定协议或端口出网等&#xff0c;遇到这种情况时可以用以下命令测试目标主机允许哪些协议出…

桥接模式的学习与使用

1、桥接模式的学习 当你需要将抽象部分与实现部分解耦&#xff0c;使它们可以独立地变化&#xff0c;而又能够灵活地组合在一起时&#xff0c;可以使用桥接模式。桥接模式通过将抽象和实现部分分离&#xff0c;使它们可以独立地进行扩展和变化&#xff0c;同时又能够在运行时动…

代码随想录二战day2

977有序数组的平方 力扣 思路&#xff1a; 第一&#xff1a; 和之前一样的&#xff0c;看见数组我们的第一想法就是使用双指针去解。这道题需要额外开辟一个答案数组去储存结果。 第二&#xff1a; 头指针指向第一个元素&#xff0c;尾指针指向最后一个元素。然后对两个元素分…

RocketMQ安装(Docker)

一、RocketMQ安装之docker 1.下载RockerMQ需要的镜像 docker pull rocketmqinc/rocketmq docker pull styletang/rocketmq-console-ng 2.启动NameServer服务 创建NameServer数据存储路径 mkdir -p /home/rocketmq/data/namesrv/logs /home/rocketmq/data/namesrv/store启动…

拾起王慧文的AI梦,美团冲向“光年之外”?

“十年&#xff0c;我需要休息休息&#xff0c;下一个十年&#xff0c;就托付给兄弟们了&#xff0c;感谢你们。” 2020年底&#xff0c;王慧文在朋友圈写下这句话时&#xff0c;外界本以为这位伴随中国互联网发展而持续创业20年的人物即将告别创业舞台。但是&#xff0c;一个…

Kubernetes创建集群—使用 Minikube 创建集群

一、使用 Minikube 创建集群 1、Kubernetes 集群 Kubernetes 协调一个高可用计算机集群&#xff0c;每个计算机作为独立单元互相连接工作。 Kubernetes 中的抽象允许你将容器化的应用部署到集群&#xff0c;而无需将它们绑定到某个特定的独立计算机。为了使用这种新的部署模型…

keepalived安装与使用(Nginx高可用)

一、Keepalived 简介&#x1f349; 1.什么是Keepalived &#xff1f;&#x1f95d; Keepalived一个基于VRRP 协议来实现的 LVS 服务高可用方案&#xff0c;可以利用其来解决单点故障。一个LVS服务会有2台服务器运行Keepalived&#xff0c;一台为主服务器&#xff08;MASTER&a…

Learn Mongodb DB功能命令索引等搜索 ⑤

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; PHP MYSQL &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f44…

layui框架学习(31:下拉菜单模块)

Layui的下拉菜单组件模块dropdown支持动态构建下拉菜单及右键菜单&#xff0c;不同于之前学习的页面元素中的菜单&#xff0c;后者主要是在页面中搭建菜单结构&#xff0c;然后通过设置layui提供的菜单相关的预设类对菜单结构进行样式渲染&#xff0c;而通过dropdown模块则是基…

【单片机】STM32单片机,RTC实时时钟,STM32F103C8T6,程序,万年历,数字时钟

文章目录 基础介绍rtc.hrtc.cmain.c 基础介绍 我以STM32F103C8T6为例&#xff0c;但STM32F103的RTC是通用的&#xff0c;STM32F103C8T6有一个原理图&#xff1a; https://qq742971636.blog.csdn.net/article/details/131288390 用纽扣电池给VBAT供电&#xff08;要共地&…

基于matlab使用多类掩码区域的卷积神经网络对人和汽车的各个实例进行分段(附源码)

一、前言 此示例展示了如何使用基于多类掩码区域的卷积神经网络 &#xff08;R-CNN&#xff09; 对人和汽车的各个实例进行分段。实例分割是一种计算机视觉技术&#xff0c;您可以在其中检测和定位对象&#xff0c;同时为每个检测到的实例生成分割图。 此示例首先演示如何使用…

shardingsphere-proxy 实现postgresql的单库分表

1、docker 安装zookeeper 1、拉取镜像 docker pull zookeeper2、运行容器 docker run -d -e TZ"Asia/Shanghai" -p 2181:2181 -v /home/sunyuhua/docker/zookeeper:/data --name zookeeper --restart always zookeeper3、查看容器是不是运行成功 docker exec -i…

Spring Boot 中的 @SendTo 注解

Spring Boot 中的 SendTo 注解 在 Spring Boot 中&#xff0c;SendTo 注解是一个非常有用的注解&#xff0c;它可以用于实现 WebSocket 的消息转发功能。本文将介绍 SendTo 注解的原理、使用方法和示例代码。 什么是 SendTo 注解 SendTo 注解是 Spring Boot 中用于将消息发送…

个人和企业如何有效保护IP地址?

随着互联网的快速发展&#xff0c;个人和企业对于保护IP地址的重要性越来越清晰。为了帮助读者更好地了解如何有效保护IP地址&#xff0c;以下将介绍几种方法&#xff0c;并提供一些相关的数据和专家意见。 使用防火墙是保护IP地址的一个重要手段。防火墙可以监控和过滤网络流量…

react native 使用Native Module、Intent、广播接收器 实现两个app之间的相互通信

一、react native版本环境: “react”: “18.1.0”, “react-native”: “0.70.6”, “node”: "14.18.2 二、发送端步骤: 在A app中注册一个Native Module模块,使用Intent 连接B app,sendBroadcast 发送广播传递数据。 (1)首先在 /android/app/src/main/java/com/j…

ASP.NET Core MVC从入门到精通[PDF版]

随着技术的发展&#xff0c;ASP.NET Core MVC也推出了好长时间&#xff0c;经过不断的版本更新迭代&#xff0c;已经越来越完善&#xff0c;本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容&#xff0c;适用于初学者&#xff0c;在校毕业生&#xff0c…