精华内容
下载资源
问答
  • uml:什么是数据流

    千次阅读 2019-05-19 11:04:52
    什么是数据流图? 数据流图 (DFD) 用于表示业务信息系统中的数据流,它表达了系统中的据传从输入到存储间所涉及的程序。 数据流图可以分为逻辑形和物理形。逻辑数据流图描述了用以完成某业务功能所涉及的、业务...

    什么是数据流图?

    数据流图 (DFD) 用于表示业务信息系统中的数据流,它表达了系统中的据传从输入到存储间所涉及的程序。

    数据流图可以分为逻辑形和物理形。逻辑数据流图描述了用以完成某业务功能所涉及的、业务层面的数据流动, 物理数据流图则描述系统层面的数据流动。

    为什么绘画数据流图?

    数据流图以将用以寻找、编辑、存储和分发数据的功能或过程图像化,方便用户和系统设计人员沟通。数据流图的结构也容让开发人员从高点分析系统,继而生成一系列用以深入分析的图表。数据流图被广泛应用,原因如下:

    • 用于表达系统的逻辑信息流
    • 用于寻找系统需求
    • 简单、以理解的图形符号
    • 建立手动和自动系统需求

    数据流图的符号

    数据流图有四个基本符号。

    程序

    一个程序负责接收输入的数据,并产生具有不同内容或形式的输出。程序可以简单如将收集的数据保存在数据库,也或者复杂如将数据加以分析并生成报表。

    每个程序都有一个名称来标识它所执行的功能。

    名字由一个动词组成,后跟一个单数名词。

    例子:

    • 申请付款
    • 计算佣金
    • 验证订单

    符号

    • 圆角矩形
    • 为了便于参考,程序都被赋予 ID

    数据流图程序

    程序示例

    数据流图程序示例

    数据流

    数据流是数据从信息系统的一个部分移动到另一个部分的路径。数据流可以表示单个数据元素,例如客户 ID,或者一组数据元素 (或数据结构)。

    例子:

    • Customer_info (姓氏,名字,SS#,电话号码等)
    • Order_info (OrderId,Item#,OrderDate,CustomerID 等)。

    数据流示例

    数据流图数据存储示例

    符号

    • 带输入箭头的直线即为输入数据流
    • 带输出箭头的直线即为输出数据流

    注意:

    由于每个程序都将数据从一种形态转换为另一种形态,故每个程序必须至少有一个输入数据流和一个输出数据流。

    一些数据流的规则

    数据流图的一大原则是数据不能自行转换成另一形态,数据必须经由某程序的处理才可被分发至系统的某个部份。通过这条规则,我们可以非常容易地识别出错误的画法并加以纠正。

    错误 正确画法 原因
    错误的数据流图01 正确的数据流图01 没有经由程序处理,故实体不能将数据传送至另一个实体。
    错误的数据流图02 正确的数据流图02 数据不能直接从实体移动到数据存储而没有事先经由程序处理。
    错误的数据流图03 正确的数据流图03 数据不能直接从数据存储移动至实体而没有事先经由程序处理。
    错误的数据流图04 正确的数据流图04 数据不能直接从一个数据存储移动到另一个数据存储而没有事先经由程序处理。

    其他常犯的错误

    当一个程序步骤的输出与其输入不匹配时,会出现第二类错误,它们可以分类为:

    • 黑洞 - 程序步骤可能有输入流,但没有输出流。
    • 奇迹 - 一个程序步骤可能有输出流,但没有输入流。
    • 灰孔 - 程序步骤的输出可能大于其输入的总和

    数据流图的常犯错误

    数据存储

    当系统必须保留数据以让一个或多个程序使用或存储数据,便可以数据存储来表达

    符号

    • 将数据写入数据存储,数据流连结线以外出箭头表示。
    • 从数据存储中读取数据,数据流连结线以输入箭头表示。
    • 一些数据存储的例子:库存,应收账款,订单和每日付款。

    数据存储符号

    数据存储示例

    数据存储示例

    注意:

    • 数据存储必须以数据流连接到程序。
    • 每个数据存储必须至少有一个输入数据流和至少一个输出数据流(即使输出数据流是一个确认讯息)。

    外部实体

    外部实体是向系统提供数据或从系统接收输出的人、部门、外部组织或其他信息系统。外部实体是信息系统边界之外的组件,它们代表了信息系统如何与外界交互。

    • 矩形
    • 只提供或接收数据
    • 不处理数据

    符号

    • 客户提交订单,然后从系统收到账单
    • 供应商发出发票

    数据流图的外部实体

    外部实体示例

    数据流图的外部实体的示例

    注意:

    • 外部实体也被称为终止符,因为它们是数据的源头或目的地。
    • 必须通过数据流将外部实体连接到程序。

    高至低分解 (Top-Down Decomposition)

    高至低分解用于展示更多细节。透过平整,我们将绘制出多张数据流图,一张比一张详细,直到达到所需的细节层次为止。如下图所示,我们会​​先在最高层次的数据流图中将目标系统表达成单个程序,然后将程序分解成更多层的数据流图,以表达更多细节,直到所有程序都是功能性程序为止。

    数据流图之间的一致性

    当对数据流图进行高至低分解时,输入和输出数据流必须在数据流图之间保存一致。例如,级别n&n + 1必须具有相同的输入和输出。

    数据流图之间的一致性

    数据流图指南

    背景图 - 第 0 阶

    • 背景图须容于一个页面中 (不能过大)。
    • 背景图中的程序名称须为信息系统的名称。
      • 一些例子:分级系统,订单处理系统,注册系统。
    • 背景图又被称为第 0 阶图。

    使用独特的名称

    • 别重覆使用相同的名称表达不同的概念。
      • 例如,在不同层次的数据流图中只能有一个实体 CUSTOMER。

    数据流图没有交叉线

    • 达到此目的的一种方法是严格控制数据流图中的程序数。

    人类只能同时处理 7 + / - 2 个符号

    • 在具有多个程序的较低阶的数据流图中,也不应该有多于九个程序。
    • 避免交叉线的另一种方法是复制外部实体或数据存储。使用特殊符号(如星号)表示重复的符号。

    编号习惯

    • 为每个程序符号使用一个唯一的参考号码。
    • 其他程序号码在以下层次中:
      • (1, 2, 3,...);
      • (1.1, 1.2, 1.3, ..., 2.1, 2.2, 2.3,...);
      • (1.1.1, 1.1.2, 1.1.3,...).

    背景图

    背景图用于表达一个系统的概览,它是数据流图中的最高级别,只包含一个代表整个系统的程序。这程序会被分解成更多细节的主要程序,每个主要程序可能会进一步分解以提供更多细节。

    • 背景图显示了所有的外部实体,以及来自它们的主要数据流。
    • 该图不包含任何数据存储。
    • 背景图的单个程序可以被分解为下一级图中的主要程序,其被称为第 0 阶数据流图。

    数据流图的背景图示例

    第 1 阶数据流图

    第 0 阶数据流图中的程序 (具有整数)可以进一步分解以表示程序的细节。下面的例子显示了程序被分解成下一个阶级(第 1 阶)。

    注意:

    虽然下面的第 1 阶数据流图只有三个程序 ,但是这些程序涉及不少数据的输入和输出,进而导致交叉线的出现。为避免这个情況,我们可以在数据流图中使用多重视角,让同一元件重覆出现在图中的不同位置。

    第 1 階数据流图

    第 2 阶数据流图

    如果一个程序跟大量外部实体存在数据的输入和输出,我们可以首先将该程序和相关的外部实体提取到单独的数据流图,然后再将该进程细化到单独的数据流图级别,通过这种方式可以更容易确保它们之间的一致性。

    第2 阶数据流图

    逻辑与物理数据流图

    数据流图被分类为逻辑形或物理形。逻辑数据流图主要表达了业务和业务运作,它不关心系统将如何构建。我们可以忽略实现细节,如计算机配置、数据存储技术、信或消息传递方法,而集中表达系统所执行的功能,如数据收集、数据跟信息的转换和信息报告。

    物理数据流程图显示系统将如何被建设起来,包括系统中的硬件、软件、文件和人员。它使逻辑数据流图中描述的程序正确地实现以达到业务目标。

    逻辑数据流图的好处

    • 逻辑数据流图主要呈现业务信息,该图以业务活动为中心,故有助于与用户间的交流和沟通。
    • 逻辑数据流图乃基于业务事件而绘制,并且独立于特定的技术或物理布局,这让系统更加稳定。
    • 逻辑数据流图让分析师更了解正在研究的业务,并确定决策背后的原因。
    • 基于逻辑数据流图而实现的系统更容易维护,因为业务功能不会经常发生变化。
    • 很多时候,逻辑数据流图不包含文件或数据库以外的数据存储,这比物理数据流图更易于绘制。
    • 通过修改逻辑数据流图可以很容易地产生物理数据流图。

    物理数据流图的好处

    • 理清哪些程序是手动的,哪些流程是自动的:手动程序需要详细的文档,而自动化流程则需要开发计算机程序。
    • 比逻辑数据流图更详细地描述过程:描述处理数据的所有步骤
    • 排序过程必须按照特定顺序完成:描述导致有意义结果的活动顺序。例如,必须在生成摘要报告之前执行更新。
    • 识别临时数据存储:描述临时存储,例如在杂货店中用于顾客收据(报告)的销售交易文件。
    • 指定文件和打印输出的实际名称:逻辑数据流图描述了实际的文件名和报告,以便程序员在系统的开发阶段将它们与数据字典 (Data Dictionary) 联系起来。
    • 添加控件以确保过程正确完成。

    精炼逻辑数据流图成物理数据流图

    以下示例显示了一家杂货店收银员的逻辑数据流图和物理数据流图:

    • 客户将ITEMS带到注册表中;
    • 所有项目的价格均已预订,然后合计;
    • 接下来,付款最终交给收银员,客户收到收据。

    逻辑数据流图示例 - 杂货店

    逻辑数据流图说明了所涉及的过程,而没有详细描述活动的物理实现。

    逻辑数据流图示例- 杂货店

    物理数据流图示例 - 杂货店

    • 物理数据流图显示条形码 - 使用大部分杂货店商品上找到的 UPC PRICE 代码
    • 此外,物理数据流图提到手动处理,如扫描,并表达了临时文件被应用于储存项目的小计
    • 付款可以通过CASH,CHECK或者DEBIT CARD进行
    • 最后,它用上收款人的名字:现金注册收据

    物理数据流图示例- 杂货店

     

    转载地址:https://www.visual-paradigm.com/cn/guide/data-flow-diagram/what-is-data-flow-diagram/

    展开全文
  • 什么是数据流

    千次阅读 2018-11-06 17:00:56
    数据流定义 想象一条河。河流从哪里开始?...通常,数据流对于在生成数据时在连续流中以小尺寸(通常以千字节为单位)发送数据的数据源类型有用的。这可能包括各种各样的数据源,例如来自连接设备的遥测...

    数据流定义

    想象一条河。河流从哪里开始?河流在哪里?我们对河流的理解本质上是流动的概念。这条河没有开始也没有结束。流数据非常适合于没有离散开头或结尾的数据。例如,交通灯的数据是连续的,没有“开始”或“完成”。数据流是连续而不是分批发送数据记录的过程。通常,数据流对于在生成数据时在连续流中以小尺寸(通常以千字节为单位)发送数据的数据源类型是有用的。这可能包括各种各样的数据源,例如来自连接设备的遥测,客户使用您的Web应用程序生成的日志文件,电子商务交易或来自社交网络或地理空间服务的信息。

    传统上,数据是分批移动的。批处理通常同时处理大量数据,具有长时间的延迟。例如,该过程每24小时运行一次。虽然这可以是处理大量数据的有效方法,但它不适用于要流式传输的数据,因为数据在处理时可能是陈旧的。

    数据流是时间序列和随时间检测模式的最佳选择。例如,跟踪Web会话的长度。大多数物联网数据非常适合数据流。交通传感器,健康传感器,交易日志和活动日志等都是数据流的理想选择。

    此流数据通常用于实时聚合和关联,过滤或采样。通过数据流,您可以实时分析数据,并深入了解各种活动,例如计量,服务器活动,设备地理位置或网站点击。

    请考虑以下方案:

    • 金融机构跟踪市场变化并根据配置的约束(例如达到特定股票价值时的卖出)调整客户组合的设置。
    • 电网监控吞吐量并在达到某些阈值时生成警报。
    • 新闻源从各种平台流式传输点击流记录,并使用人口统计信息丰富数据,以便它可以提供与受众人口相关的文章。
    • 电子商务站点流式传输点击流记录以查找数据流中的异常行为,并在点击流显示异常行为时生成安全警报。

    数据流挑战

    数据流是一种功能强大的工具,但在使用流数据源时,有一些常见的挑战。以下列表显示了数据流时要规划的一些事项:

    • 规划可扩展性。
    • 规划数据持久性。
    • 在存储层和处理层中加入容错。
    展开全文
  • 做管理系统遇到了这个概念,只听过数据驱动。 一个数据流驱动的管理系统,需要达到哪些要求?
  • 什么是数据流图 Data Flow Diagram (DFD)

    万次阅读 2017-12-08 11:22:00
    数据流图(DFD)系统内信息流的传统视觉表示。一个整齐而清晰的DFD可以用图形描绘出大量的系统需求。它可以手动的,自动的或两者的组合。 它显示了信息如何进入和离开系统,什么改变了信息以及信息的存储位置。...

    什么是数据流图(DFD)?如何绘制DFD?

    一张图片胜过千言万语。数据流图(DFD)是系统内信息流的传统视觉表示。一个整齐而清晰的DFD可以用图形描绘出大量的系统需求。它可以是手动的,自动的或两者的组合。

    它显示了信息如何进入和离开系统,什么改变了信息以及信息的存储位置。DFD的目的是显示整个系统的范围和界限。它可能被用作系统分析员和任何参与系统的人之间的交流工具,作为重新设计系统的起点。

    它通常以上下文图开始,作为DFD图的0级,这是整个系统的简单表示。为了进一步阐述,我们深入到一级图,将较低级别的功能从系统的主要功能中分解出来。当需要进一步分析时,这可能会继续发展成为二级图。级别3,级别4等等是可能的,但是超出级别3的任何东西都不是很常见。请记住,分解特定函数的细节水平实际上取决于函数的复杂性。

    DFD图表符号 (Diagram Notations)

    现在我们要简要介绍一下您将在下面教程中看到的一些图表符号。

    外部实体

    外部实体可以代表人,系统或子系统。这是某些数据来自或去的地方。就业务流程而言,这是我们研究的系统的外部。出于这个原因,人们习惯于在图表的边缘绘制外部实体。


    符号(外部实体)

    处理 (Process)

    一个过程是一个业务活动或功能,其中的数据处理和转换发生。一个进程可以被分解成更细的细节,用于表示数据在进程中的处理方式。 
    符号(过程)

    数据存储 (Data Store)

    数据存储表示由进程需要和/或产生的持久性数据的存储。这里有一些数据存储的例子:会员表单,数据库表格等 
    符号(数据存储)

    数据流 (Data Flow)

    数据流代表信息流,其方向由流量连接器末端显示的箭头表示。 
    符号(数据流)

    我们将在本教程中做什么?

    在本教程中,我们将向您展示如何绘制上下文图,以及一级图。

    注意:我们在这里使用的软件是Visual Paradigm欢迎您下载Visual Paradigm的30天免费 评估版,以便浏览下面的示例。没有注册,电子邮件地址或义务是必需的。

    如何绘制 Context  Diagram 级DFD?

    1. 要创建新的DFD,请从工具栏中选择图表>新建
    2. New Diagram窗口中,选择Data Flow Diagram,然后单击Next
    3. 输入上下文作为图表名称,然后单击确定确认。
    4. 我们现在将绘制第一个过程。从图表工具栏,将过程拖到图上。命名新的进程系统
      在图上绘制过程
    5. 接下来,我们来创建一个外部实体。请将鼠标指针悬停在System上按下并拖出右上角资源目录按钮。
      拖动资源目录
    6. 释放鼠标按钮并从资源目录中选择双向数据流 - >外部实体
      从资源目录创建外部实体
    7. 命名新的外部实体Customer
      创建一个名为Customer的实体
    8. 现在我们将模拟系统访问的数据库。使用资源目录从系统创建一个数据存储,其间存在双向数据流。
      创建数据存储
    9. 命名新的数据存储
      创建一个名为Inventory的数据存储
    10. 创建另外两个数据存储,CustomerTransaction,如下所示。我们刚刚完成了上下文图。
      客户和交易创建

    如何绘制1级 (Level 1) DFD?

    1. 我们将不再从头创建另一个图表,而是分解系统进程以形成一个新的DFD。右键单击系统,然后从弹出菜单中选择分解
      分解过程
    2. 连接到所选进程(系统的数据存储和/或外部实体将在1级DFD中被引用。因此,当系统提示您将其添加到新图时,单击确认。 
      注意:新的DFD看起来应该与上下文图非常相似。每个元素都应该保持不变,除了系统进程(从这个新的DFD分解)现在消失了,并被一个空白空间(将被阐述)取代。
    3. 重新命名新的DFD。右键单击其背景,并选择重命名...在图的名称框中,输入Level 1 DFD,然后按ENTER
    4. 如下所示,在中心创建三个流程(流程订单,运送情况,发货收据)。这是系统过程的旧点,我们把它们放在那里来详细说明系统
      在1级DFD中创建三个流程

    用连接线 (Connection Line) 连接数据流

    本节中的其余步骤是关于连接图中的模型元素。例如,客户在下订单处理时提供订单信息。

    1. 将鼠标指针放在Customer上拖出资源目录图标并释放流程订单上的鼠标按钮
      连接客户流程订单
    2. 从资源目录中选择数据流。
      选择数据流
    3. 输入订单信息有流量的标题。
      流标题输入
    4. 同时流程订单流程也接收来自数据库的客户信息以处理订单。 
      使用资源目录创建从客户流程订单的数据流。 
      在客户和流程订单之间创建数据流 
      可选:如果您愿意,您可以标记数据流“客户信息”。但是由于这个数据流在视觉上是相当自明的,所以我们在这里省略它。
    5. 通过结合来自客户(外部实体)的订单信息和来自客户(数据存储)的客户信息流程订单(过程)然后在数据库中创建交易记录。创建从流程订单交易的数据流。 
      数据流创建 
      绘图提示: 
      要重新排列连接线,请将鼠标指针放在要为其添加枢轴点的位置。然后你会在鼠标点看到一个气泡。点击并拖动到你需要的地方。 
      重新路由连接器 
      到目前为止,你的图应该看起来像这样。 
      更新-DFD
    6. 一旦交易被储存,运输过程就会结束。因此,创建一个从流程订单(流程)到货运状态(流程)的数据流。 
      数据流创建
    7. Ship Good需要读取交易信息(即Order_为了打包正确的产品交付,从Transaction(数据存储)创建一个数据流到Ship Good(处理) 
      数据流创建 
      注意:如果缺少空间,感觉自由移动周围的形状,以腾出空间。
    8. Ship Good也需要阅读他/她的送货地址的客户信息。Customer(数据存储)创建一个数据流到Ship Good(流程)。 
      数据流创建
    9. 装船好,然后更新库存数据库,以反映出货。创建一个从船舶良好(过程)到库存(数据存储)的数据流将其命名为更新产品记录。 
      数据流创建
    10. 一旦订单到达客户手中,问题回执过程就开始了。其中,基于存储在数据库中的交易记录来准备收据。所以让我们创建一个从Transaction(数据存储)到Issue Receipt(process)的数据流
      数据流创建
    11. 然后收据发给客户。让我们创建一个从问题收据(流程)到客户(外部实体)的数据流命名数据流收据。 
      数据流创建 
      你刚完成绘制1级图应该看起来像这样。 
      更新了dfd

    如何提高DFD的可读性 (Readability)?

    上面完成的图表看起来有点僵硬和忙碌。在本节中,我们将对连接器进行一些更改以提高可读性。

    1. 右键单击图(Level 1 DFD)并选择连接器>曲线图中的连接器现在是曲线。 
      连接器在曲线中
    2. 移动周围的形状,使图看起来不那么拥挤。
      完成dfd

    更多的DFD例子

    下面的列表将引导您查看涵盖不同业务和问题域的各种数据流图示例。

    展开全文
  • 一、概述TensorFlow最基本的一次计算流程通常这样的:首先它接受n个固定格式的数据输入,通过特定的...在这其中,TensorFlow将这一系列的计算流程抽象为了一张数据流图(Data Flow Graph)。简单来说,数据流图...

    一、概述

    TensorFlow最基本的一次计算流程通常是这样的:首先它接受n个固定格式的数据输入,通过特定的函数,将其转化为n个张量(Tensor)格式的输出。

    一般来说,某次计算的输出很可能是下一次计算的(全部或部分)输入。整个计算过程其实是一个个Tensor 数据的流动过程。在这其中,TensorFlow将这一系列的计算流程抽象为了一张数据流图(Data Flow Graph)。简单来说,数据流图,就是在逻辑上描述一次机器学习计算的过程。下面我们以图11-26为例,来说明TensorFlow的几个重要概念。
    图11-26 TensorFlow的数据流图

    构建数据流图时,需要两个基础元素:点(node)和边(edge)。
    节点:在数据流图中,节点通常以圆、椭圆或方框表示,代表对数据的运算或某种操作。例如,在图11-26中,就有5个节点,分别表示输入(input)、乘法(mul)和加法(add)。
    边:数据流图是一种有向图,“边”通常用带箭头线段表示,实际上,它是节点之间的连接。指向节点的边表示输入,从节点引出的边表示输出。输入可以是来自其他数据流图,也可以表示文件读取、用户输入。输出就是某个节点的“操作(Operation,下文简称Op)”结果。在图11-26中的例子中,节点c接受两个边的输入(2和4),输出乘法的(mul)结果8。
    在本质上,TensorFlow的数据流图就是一系列链接在一起的函数构成,每个函数都会输出若干个值(0个或多个),以供其它函数使用。在图11-26中,a和b是两个输入节点(input)。这类节点并非可有可无,它的作用是传递输入值,并隐藏重复使用的细节,从而可对输入操作进行抽象描述。
    除了上述两个概念之外,下面3个概念也很重要,在后面的章节会详细介绍,这里仅做简单介绍。
    (1)Session(会话):根据上下文(context),会话负责管理协调整个数据流图的计算过程。光有数据流图还不够,如果想执行数据流图所描述的计算,还得配备一个专门的会话,来负责图计算。
    (2)Op(操作):就是数据流图中的一个节点,代表一次基本的操作过程。

    (3)Tensor(张量):在TensorFlow 中,所有计算数据的格式,都是一个n维数组,如 t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]],就是一个2维张量。

    二、构建第一个TensorFlow数据流

    通过前面的介绍,下面我们就可以构建一个与图11-26相匹配的数据流程图,具体代码如下所示:

    【范例11-1】TensorFlow数据流图(feed_dict.py)

    import tensorflow as tf
    
    a = tf.constant(4, name = "input_a")
    b = tf.constant(2, name = "input_b")
    c = tf.multiply(a,b, name ="mul_c")
    d = tf.add(a,b, name = "add_d")
    e = tf.add(c,d, name = "add_e")
    
    sess = tf.Session()
    print(sess.run(e))
    sess.close()

    在Jupyter Notebook按Shift + Enter键,结果如图11-27所示。


    图11-27 数据流程图计算结果

    整体来说,TensorFlow的程序由两大部分构成:
    (1) 构建计算流图(如范例11-1的第03~07行)。
    (2)运行计算流图(如范例11-1的第09~11行)。
    下面我们来详细解析上述代码。
    第01行代码是Python的经典用法,它的作用是导入TensorFlow库,并给它取一个简短的别名tf,方便后面引用。

    第03和04行代码定义了两个输入节点a和b,在TensorFlow中,它要以数据流图的形式完成计算,所以不能像Python一样直接赋值。比如a = 4或b = 2,在TensorFlow计算中都是错误的,必须通过一个“操作(Operation,简称Op)”,使其变成一个数据流图的节点。tf.constant( )就是要创建一个常量Op,constant( )函数本身有多个参数,其函数原型如下:

    constant(
        value,
        dtype=None,
        shape=None,
        name='Const',
        verify_shape=False
    )

    第1个参数是常量数值(value),第2个参数是数据类型(dtype),指定返回张量的数据类型。第3个参数shape是可选项,表明设置张量的形状(即张量的维度),第4个参数是name,是可选项,用于指定这个操作(Op)的名称,默认值为“Const”,在本范例代码中,我们给出特定的名称,这是为在后期绘制流程图方便。第5个参数是一个布尔值,它表明是否要验证张量形状,默认值为“False”,不验证。这5个参数除了第一个参数外,都有默认值,用户可以根据自己的需要指定第2~5个参数的值。
    第05行代码实施乘法操作。与前面介绍的类似,在TensorFlow中,乘法也是一个标准的Op,multiply()函数原型为:
    multiply(
        x,
        y,
        name=None
    )

    在参数中,x和y都是两个标准的张量(可以是下列类型的任何一种,half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128),返回值是x*y的值,对这个Op也可以取一个名称name,默认值是“None”。在本范例中,我们取名为mul_c。
    这里需要说明一点的是,在TensorFlow 1.0(2017年2月发布)以后,tf.mul,(乘法)、tf.sub(减法)和tf.neg(取负值)等API都已过时,分别被tf.multiply, tf.subtract 和tf.negative取代。
    由于TensorFlow的社区非常活跃,用户提交了很多有价值的代码,因此它的版本迭代速度非常快,“不是我不明白,是你变化太快”,所以如果读者朋友在看到本书时,发现部分API过时了,版本号不是最新的,无需惊讶,因为这就是TensorFlow的调性。对于此类情况,多多查看TensorFlow的官方文档。(https://www.tensorflow.org/api_guides/python/),把握最新动态,才是正道。
    第06~07行,表明加法操作,add( )函数的原型为:
    add(
        x,
        y,
        name=None
    )
    参数的含义和乘法类似,这里不再赘述。
    当整个数据流图构建完毕后,虽然它在语法上不报错,但TensorFlow并不会实质性地去执行数据流图描述的计算。这是因为,我们还需要给这个数据流图添加一个会话(Session)。
    第09行,就是定义一个会话。Session可理解为数据流图的运行环境。
    第10行就是把数据流图的终点e作为会话运行run( )的参数,然后利用print打印run()的返回值。
    由于开启一个会话,可能会耗费部分系统资源,一个良好的编程习惯就是用完一个会话之后,要关闭它,第11行干的就是这个工作。
    当然,我们可以利用“with”上下文管理器在用完之后,自动关闭它,第09~11行代码可变更为:
    with tf.Session() as sess: 
        print(sess.run(e))
    现在我们总结一下TensorFlow的工作流程,实际上它体现出来的是一个“惰性”方法论。
    (1)构建一个计算图。图中的节点可以是TensorFlow支持的任何数学操作。
    (2)初始化变量。将前期定义的变量赋初值。
    (3)创建一个会话。这才是图计算开始的地方,也是体现它“惰性”的地方,也就是说,仅仅构建一个图,这些图不会自动执行计算操作,而是还要显式提交到一个会话去执行,也就是说,它的执行,是滞后的。
    (4)在会话中运行图的计算。把编译通过的合法计算流图传递给会话,这时张量(tensor)才真正“流动(flow)”起来。
    (5)关闭会话。当整个图无需再计算时,则关闭会话,以回收系统资源。

    节选自 张玉宏《深度学习之美》部分章节,电子工业出版社,博文视点,2018年6月出版


    To be continued~~~


    展开全文
  • 文章目录关于 TensorFlow什么是数据流图(Data Flow Graph)?Tensorflow的特征 认识Tensorflow 1.1. 下载以及安装 1.2. 初识tf Tensorflow进阶 2.1. 张量的阶和数据类型 2.2. 张量操作 2.3. 变量的的创建、初始化 ...
  • TensorFlow™ 一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让...
  • 数据流是什么?应该怎么画?

    千次阅读 2020-09-17 18:47:55
    接下来就带大家了解一下什么是数据流图。 什么是数据流图呢? 数据流图是一种结构化系统分析工具,简称DFD,被广泛运用到企业的管理系统当中。DFD主要是从数据传递和加工的角度,通过图形的方式来表达系统的逻辑...
  • 单向数据流是什么

    千次阅读 2019-06-01 10:22:54
    单向数据流是什么 单向数据流(Unidirectional data flow)方式使用一个上传数据流和一个下传数据流进行双向数据通信,两个数据流之间相互独立。单向数据流指只能从一个方向来修改状态。下图单向数据流的极简示意...
  • 什么是单向数据流

    2019-08-05 08:52:55
    当父组件给子组件传递数据的时候,子组件只允许进行数据的读操作,不允许做数据的改操作,因为当子组件改变父组件传递过来的数据的话会造成数据流难以理解。 (简单分析一下:当子组件中更改了父级的内容时,其他...
  • 数据流图、数据字典的画法

    万次阅读 多人点赞 2020-10-30 14:40:50
    什么是数据流图? 数据流图反映的是客观现实问题中的工作过程 它采用简单的图形妇好分别表示数据流、加工、数据源和外部实体等,不涉及任何具体物理元素,仅仅描述数据在系统中的流动和处理的情况。 - - 《软件工程...
  • 数据流图的作用是什么?如何画

    千次阅读 2021-01-08 23:55:27
    数据流图简称DFD(Data Flow Diagram)图,它以特定的图形符号描述系统逻辑模型的工 数据流图 具; 它从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的过程; 它开发人员与用户之间交流信息的通信...
  • 【C语言】【unix c】什么是标准数据流
  • 数据流重定向

    2015-06-21 16:19:39
    一、什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。 简单来说,标准输出指的是命令执行所回传的...
  • 如果传送数据前我们没有三次招手。那么,由于tcp一个可靠 的传输协议,所以一定会提供超时重试的机制,而且允许的重试的次数 应该不只是一次或两次那么少。那么问题来了,如果刚一开始通信两端 其实就是不通的...
  • 数据流测试

    2020-06-18 14:57:55
    什么是数据流测试? 答:指关注变量接受值的点和使用这些值的点的结构性测试形式。 数据流测试指关注可以用作路径测试的“真实性检查” 数据流测试两种测试方法? 答: 1.一组基本定义和一种统一的测试覆盖指标结构...
  • Linux 数据流重定向

    2017-03-06 22:28:35
    一、什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。 简单来说,标准输出指的是命令执行所回传的...
  • 数据流分析初探

    千次阅读 2018-09-15 16:50:46
    什么是数据流分析 数据流分析是一种通过静态代码来“推断”程序动态执行的相关信息的技术,数据流分析并不真正执行程序。虽然数据流分析和符号执行在某些方面比较相似,但还是两种完全不同的概念,更确切的说数据流...
  • 如何画数据流

    千次阅读 2019-07-21 00:05:37
    什么是数据流图 DFD=data flow diagram 在系统设计阶段。是对将来要构建的系统提取一个逻辑模型的过程 。关注点是过程内数据的处理 标识图元有四个 ,分别是实体,过程,数据流,数据存储 可以逐步求精,先画顶层...
  • tensorflow数据流

    2019-09-23 19:28:28
    什么是数据流图(Data Flow Graph)? 官方的解释为:数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出...
  • 陈赜主编的《CPLD/FPGA与ASIC设计实践教程》一书中,刚开始说的描述方式有四种,即结构描述,数据流描述,行为描述以及三者混合方式,,但是在第五章行为描述中又讲到数据流描述也行为描述,将数据流描述和行为...
  • 什么是流

    2020-09-13 12:21:24
    就是数据 按照方向分为两种 第一种输入跟输入内存称之为输入,也可以叫读取。 第二种输出数据内存的数据写到数据中称之为输出也叫做流入。 按照流传输数据的内容来分有三种 分别:字节 字符...
  • Linux数据流重定向

    2013-07-22 14:21:43
    一、什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。 简单来说,标准输出指的是命令执行所回传的正确...
  • 数据流,对象流,字节流,字符流

    千次阅读 2009-03-11 13:30:00
    1.什么是数据流 ?数据流是指所有的数据通信通道有两类流,InputStream and OutputStream,Java中每一种流的基本功能依赖于它们InputStream 用于read,OutputStream 用于write, 读和写都是相对与内存说的,读就是从...
  • 浅析数据流

    千次阅读 热门讨论 2014-02-09 18:38:24
    在软工视频还有自考课本中以及后面的学习中,我们都要用到数据流图,那么什么是数据流图呢,在我没有深入了解它之前先介绍一下。 一、数据流图(DFD)  它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、...
  • Linux 之 数据流重定向

    2015-04-13 16:56:06
    一、什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。 简单来说,标准输出指的是命令执行所回传的...
  • 数据流

    万次阅读 多人点赞 2018-06-25 10:38:04
    数据流图(DFD- Data Flow Diagram)让系统分析者弄清楚“做什么”的问题,其重要性就不言而喻了。那么我们怎么画数据流图呢?数据流图与系统流程图又有什么区别呢?步骤1数据流图里包含的内容数据流图描述的系统...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,291
精华内容 8,916
关键字:

什么是数据流