TensorFlow基础之理解计算图

Tensor + Flow = TensorFlow

本章介绍TensorFlow的基础。特别地,你将学习如何用TensorFlow进行基础计算。在开始使用 TensorFlow之前,你必须理解它背后的哲学。 这个库基于计算图的概念,如果你不理解计算图是如何工作的,你就不能理解如何使用这个库。我将快速的介绍计算图并告诉你如何用  TensorFlow进行简单的计算。你将明白这个库是如何工作的,并明白如何使用它。
本章的大部分介绍tensors的概念,并讨论tensors在TensorFlow里是如何表示和操作的。这些讨论有必要简单的回顾一下作为张量计算基础的数学概念。 特别地,我们简单的回顾线性代数并说明如何用TensorFlow进行基础的线性代数计算。接着我们讨论声明式和命令式编程风格的不同。不像许多编程语言, TensorFlow大部分是声明式的。调用TensorFlow的计算添加计算描述到 TensorFlow的“计算图”。特别地, TensorFlow代码 “描述”计算但并不进行实际计算。 在TensorFlow v1里要运行计算,我们需要创建 tf.Session对像。虽然TensorFlow v2不用sessions对象,但是也有必要介绍sessions的概念并描述如何在TensorFlow里用它们进行计算。我们将简单的比较TensorFlow v1和TensorFlow v2的区别。我们还讨论变量的标记。TensorFlow里的Variables存贮张量并允许有状态的计算以修改变量。我们说明如何创建变量并通过TensorFlow更新变量。
1.理解计算图
要理解TensorFlow如何工作,你必须理解什么是计算图。计算图是个图,里面的节点相当于一个操作或变量。 变量可以将值输入到操作,一个操作可以将结果输入到另一个操作。通常,节点是圆 (或椭圆),里面是变量的名或操作, 当一个节点值输入到另一个节点时,用箭头从一个节点连到另一个节点。最简单的图是里面只有一个变量的图 (记住节点可以是变量或操作)。图 2-1 简单的计算变量 x的值。

                           

2-1. 我们可以构建的最简单的图,显示为一个简单的变量

这不是很有趣!我们考虑一下略为复杂一点的情况,例如一个变量x y的和: z = x + y。可以用下面的图表示 (2-2):

2-2. 两个变量之和的基本的计算图

2-2左边是变量 (节点里是 x y),而更大的节点表示两个变量的和。箭头表示两个变量输入到第三个节点。图应按拓扑顺序读取,意味着你要按箭头的顺序计算节点。箭头也告诉你节点的依赖关系。要评估z, 你首先必须评估 x y我们也可以说进行求和的节点依赖于输入节点。

要理解的一个重要方面是这种图只定义一个操作 (本例是求和)从两个输入 (本例是 x y) 得到结果 (本例是 z)。这基本上定义为 求和。你必须给输入x y赋值然后才能求和得到z。只有你评估了所有的节点图才会给你结果。

注意,定义每一个节点称为图的“构建”,而评估相关操作的真实值称为 “evaluation”

这是要理解的很重要的方面。注意输入变量不一定是实数,它们可以是矩阵,向量,等。 (在神经网络的相关计算里几乎都是使用矩阵。)略为复杂的情况见图 2-3它用图来计算量  A(x + y), 有三个图入量: x,  y, A

                      

2-3. 计算量 A(x + y)的计算图, 给出三个输入量: x, y, A

我们可以通过给输入节点(本例是 x, y, A)赋值来评估这个图。例如,如果你考虑图2-3中的图并赋值 x = 1, y = 3, A = 5, 我们得到结果 b = 20

(绘制为图2-4).

                      

2-4. 要评估图2-3中的图,我们必须给输入节点 x, y, A 赋值然后通过图评估节点

神经网络本质上是非常复杂的计算图,每一个神经元包含多个节点将它的输出输入到另外的神经元,直到得到一定的输出。后面我们将构建最简单的神经网络:只有一个神经元。即便是这么简单的神经网络,我们也要很多的工作。

通过将构建与评估分开,TensorFlow允许你轻松的构建非常复杂的计算图。 (记住,要计算结果,你必须赋值并评估所有的节点)。后面我告诉你这是如何工作的:如何构建计算图,如何评估它们。

注意    记住tensorflow首先构建计算图(称为构建阶段)但是不会评估它。这个库保持两步分开,所以你可以用不同的输入进行多次计算。

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

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

相关文章

【HarmonyOS Next之旅】DevEco Studio使用指南(三十五) -> 配置构建(二)

目录 1 -> 定制HAP多目标构建产物 1.1 -> 定义产物的HAP包名 1.2 -> 定义产物的deviceType 1.3 -> 定义产物的distributionFilter 1.4 -> 定义产物preloads的分包 1.5 -> 定义产物的source源码集-pages 1.6 -> 定义产物的source源码集-sourceRoots…

[muduo] ThreadPool | TcpClient | 异步任务 | 通信测试

第九章:线程池(ThreadPool) 在第八章《TcpServer》中,我们了解到muduo::net::TcpServer通过EventLoop线程池处理入站连接。 这些EventLoop线程主要负责网络I/O:套接字读写和定时器处理,由Poller和Channel…

【笔记】解决部署国产AI Agent 开源项目 MiniMax-M1时 Hugging Face 模型下载报错解决方案

MiniMax-AI/MiniMax-M1:MiniMax-M1,世界上第一个开放权重、大规模的混合注意力推理模型。 一、问题背景 【笔记】解决部署国产AI Agent 开源项目 MiniMax-M1时 Hugging Face 模型下载缓存占满 C 盘问题:更改缓存位置全流程-CSDN博客 在执行hu…

新手如何利用AI助手Cursor生成复杂项目

新手如何利用AI助手Cursor生成复杂项目 在编程学习的道路上,AI工具正成为新手开发者的得力助手。本文将介绍如何借助Cursor这一强大的AI代码助手,从零开始构建复杂项目。 一、基础准备工作 作为编程新手,面对复杂项目时常常不知从何下手。利…

【Fargo】x264的intra refresh 3: 采集、编码到 RTP打包

实际调试默认并么有打开b_intra_refresh D:\XTRANS\thunderbolt\ayame\zhb-bifrost\player-only\echo\codec\x264\echo_h264_encoder.cpp 即使打开了b_intra_refresh,也不影响RTP打包: 但是有一些要注意的地方: RFC 6184(“RTP Payload Format for H.264 Video”) intra …

Vue3 的生命周期:从 Composition API 视角看

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

面向互联网大厂Java岗位面试:Spring Boot与微服务架构的深入探讨

面向互联网大厂Java岗位面试:Spring Boot与微服务架构的深入探讨 问题1:什么是Spring Boot,它如何简化Spring应用程序的开发? 简洁回答: Spring Boot是一个基于Spring框架的开源Java平台,旨在简化新Sprin…

【信号与系统四】采样和通信系统

在一定条件之下,一个连续时间信号完全可以用该信号在等时间间隔点上的值或样本来表示,并且可以用这些样本值把该信号全部恢复出来。这个稍微有点使人吃惊的性质来自于采样定理。 例如一帧一帧的电影画面,在我们大脑中构成连续的生活情节 接…

关于球面投影SphericalProjector的介绍以及代码开发

球面投影的几何背景 什么是球面投影? 球面投影将 2D 图像中的像素点(通常是平面)映射到一个虚拟的球面上,再将球面上的角度(经度、纬度)展开到平面图上。它是广角图像拼接、全景图生成中常用的投影方法。…

wordpress外贸独立站常用留言表单插件 contact form 7

Contact Form 7 介绍 Contact Form 7 是一款非常流行的 WordPress 联系表单插件,广泛应用于外贸独立站。以下是其主要特点: 功能强大且免费:Contact Form 7 是完全免费的,支持创建和管理多个联系表单。 简单易用:用…

佰力博科技与您探讨油浴极化的优点及工艺流程

一、油浴极化的优点 温度范围宽:油浴极化适用于较宽的温度范围,适合不同材料的极化需求。 绝缘强度高:油浴介质具有良好的绝缘性能,能够承受较高的极化电场。 防潮性好:油浴极化在潮湿环境中仍能保持良好的绝缘性能。 …

从0开始学习R语言--Day28--高维回归

我们一般处理的数据,都是样本数量远大于其特征数量,可用很多种回归方法;但当特征数量远大于样本量时,可能会因为出现无数多个完美解导致过拟合现象,也使得在计算时搜索最有特征子集的方法不再可行(因为计算…

响应式数据的判断:Vue3中的方法

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

[论文阅读] 人工智能+软件工程 | 用大语言模型架起软件需求形式化的桥梁

用大语言模型架起软件需求形式化的桥梁:一篇ACM调查草案的深度解读 论文信息 arXiv:2506.14627 ACM Survey Draft on Formalising Software Requirements with Large Language Models Arshad Beg, Diarmuid O’Donoghue, Rosemary Monahan Comments: 22 pages. 6 s…

DM8故障分析工具-AWR报告

在数据库运维过程中,大家都会利用数据库提供的各种工具来找到数据库存在的问题,以便对症实施配置优化,我是因工作需要,最近开始了解达梦数据库DM8的故障分析工具,这里发现AWR报告是一款不错的自带工具,故而…

《企业司法风险监控系统架构设计:从数据采集到T+1实时预警的完整解决方案》

本文深入探讨了天远大数据在构建企业级司法风险监控平台和风险报告查询系统方面的技术实现与业务应用。平台依托权威、合法的司法数据源,通过实时数据处理与智能分析,为金融、供应链、人力资源等领域提供精准、及时的司法预警和决策支持。它通过灵活的多…

使用ccs生成bin

CCS12.6 编译生成BIN文件正确方法_ccs生成bin文件-CSDN博客

Kafka网络模块全链路源码深度剖析与设计哲学解读

在分布式消息系统的竞技场上,Kafka凭借卓越的高性能与高吞吐量脱颖而出,而其网络模块正是支撑这一卓越表现的核心引擎。从生产者将消息送入消息队列,到消费者从中拉取消息,Kafka网络模块贯穿消息流转的每个环节。本文不仅深入Kafk…

华为开发者大会6月20日举行

华为开发者大会2025(HDC 2025)将于6月20日至22日在深圳松山湖举办。 目前,华为开发者大会2025的详细日程已经公布,华为终端BG董事长余承东、华为终端BG首席执行官何刚、华为终端BG软件部总裁龚体等华为高管将出席并发表主题演讲&a…

`provide` 和 `inject` 组件通讯:实现跨组件层级通讯

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…