Tensorflow 基础

来源:互联网 发布:淘宝评分 编辑:程序博客网 时间:2024/06/17 19:53

前言

本文主要介绍学习tensorflow的一些基础知识,是tensorflow C++的基础,里面的样例使用的是python,后续将给出C++的示例。

数据流图基础

像计算机科学里面通用的数据流表示一样,在tensorflow的数据流图里面,使用节点和边来表示数据流的流动与各种操作。
节点:一般以圆圈/椭圆/方框表示,表示某种运算或操作。
边:有向边,对应于流入节点或从节点流出的数据,边的方向对应于数据的方向,用于连接不同的节点,通常是一个节点的输出是其他节点的输入。
举例:
这里写图片描述
圆圈里面的都是节点,在tensorflow里面也叫做运算operator;各条边是数据,也就是tensor张量。
任何节点都可以将其输出传递给数据流图中的任意后继节点,无论这两个节点之间发生了多少运算。如下图:
这里写图片描述
是完全合情合理的。

节点的依赖关系

定义:依赖关系是一种二元关系,如果在某个数据流图中,节点i的输出对节点j的计算来说的必需的,那么就说j依赖于i,i是j的依赖节点。
性质:依赖关系满足传递性。
直接依赖:如果i是j的依赖节点,并且i的输出直接流入j节点,则称i是j的直接依赖。
间接依赖:如果i是j的依赖节点,并且i的输入不直接流入J节点,则称i是j的间接依赖。
这里写图片描述
其中,a是c/d的直接依赖节点,a是e的间接依赖节点。

在tensorflow中定义数据流图

在tensorflow中使用数据流图需要两个步骤
1)。定义数据流图
2)。运行数据流图
在使用数据流图之前一定要先定义好数据流图来,这个是显然需要的,因为没有数据流图如何运行呢?

构建第一个Tensorflow数据流图

下面 我们在tensorflow里面定义这个数据流图并让其运行起来。

__author__ = 'jmh081701'import  tensorflow as tfimport  numpy as npa =tf.constant(5,dtype=tf.int32,name='input_a') #定义常量a,同时设置名字为Input_ab =tf.constant(3,dtype=tf.int32,name='input_b') #定义常量b,同时设置名字为input_bc =tf.multiply(a,b,'mul_c') #定义节点c,它接受两个输入a,bd =tf.add(a,b,'add_d') #定义节点d,它接受两个输入a,be =tf.add(c,d,'add_e') #定义节点e,它接受两个输入c,d #以上都是tensorflow数据流图的定义阶段,下面是让他们运行起来sess =tf.Session()print(sess.run(e)) #数据流图需要在session里面的run才能真正运行起来。当在计算e的值时,tensorflow将自动计算他的所有依赖节点的结果。writer =tf.summary.FileWriter('mygraph',tf.get_default_graph()) #将tensorflow的数据流图保存下来,以备可视化观察。writer.close()sess.close()

运行:
输出23.
在命令行输入 tensorboard –logdir=保存目录
这里写图片描述
然后再浏览器打开:http://127.0.0.1:6006
即可看到我们生成的数据流图,此图与我们的目标的同构的。
这里写图片描述