zoukankan      html  css  js  c++  java
  • 构建TensorFlow数据流图

     

    构建TensorFlow数据流图

     

    作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

     

    TensorFlow工作模式:

     

    (1) 定义数据流图;

     

    (2) 运行数据流图。

    In [1]:
    import tensorflow as tf
    
    In [2]:
    a = tf.constant(5, name = "input_a")
    
    In [3]:
    b = tf.constant(3, name = "input_b")
    
    In [4]:
    c = tf.multiply(a, b, name = "mul_c")
    
    In [5]:
    d = tf.add(a, b, name = "add_d")
    
    In [6]:
    e = tf.add(c, d, name = "add_e")
    
    In [7]:
    sess = tf.Session()
    
    In [9]:
    sess.run(e)
    
    Out[9]:
    23
     

    flow_graph

     
    代码对应的数据流图
     

    (1) 最开始时,可看到两个值5和3流入该数据流图;

     

    (2) 这些初始值被分别传入两个明确的input节点(a与b);

     

    (3) 节点c表示乘法运算,它分别从节点a与b接收输入值5和3,并将运算结果15输出到节点e;与此同时,节点d对相同的两个输入执行加法运算,并将计算结果8传递给节点e;

     

    (4) 最后,该数据流图的终点——节点e接收输入值15和8,将两者相加,并输出该数据流图的最终结果23。

     

    补充:可以使用TensorBoard可视化该数据流图。先用pip在当前环境下安装TensorBoard(默认是自带的),再添加如下语句:
    writer = tf.summary.FileWriter("logs/", sess.graph)
    可以看到在当前路径下多了logs文件夹,里面有存放的数据流图文件。再在当前tensorflow虚拟环境里面将地址换成logs的上一级地址,并输入:
    tensorboard --logdir=logs
    最后可以得到一个网址,或者在地址栏输入http://localhost:6006 ,即可得到可视化的数据流图。

    最后再添加两句将其关闭:
    writer.close()
    sess.close()

    In [1]:
    reset
    
     
    Once deleted, variables cannot be recovered. Proceed (y/[n])? y
    
    In [9]:
    # 张量思维
    
    In [2]:
    import tensorflow as tf
    
    In [3]:
    a = tf.constant([5, 3], name = "input_a")
    
    In [4]:
    b = tf.reduce_prod(a, name = "prod_b")
    
    In [5]:
    c = tf.reduce_sum(a, name = "sum_c")
    
    In [6]:
    d = tf.add(b, c, name = "add_d")
    
    In [7]:
    sess = tf.Session()
    
    In [8]:
    sess.run(d)
    
    Out[8]:
    23
     

    flow_tensor

     
    代码对应的数据流图
     

    与之前相比,原先的两个独立输入节点被替换为一个统一的输入节点,传入一组数值之后,它们会由tf.constant函数转化为一个一阶张量。
    之前的标量加法乘法,现在可用tf.reduce_prod()与tf.reduce_sum()重新定义。
    在TensorFlow中,所有节点之间传递的数据都是张量对象。

     

    参考文献:人工智能原理与实践:基于Python语言和TensorFlow / 张明,何艳珊,杜永文编著. —— 北京:人民邮电出版社,2019.8.

    所用版本:python3.5.2,tensorflow1.8.0,tensorboard1.8.0

    作者:凯鲁嘎吉
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    程序员:不要自称为码农
    SpringBoot对静态资源配置
    LeetCode 572. Subtree of Another Tree(子树)
    LeetCode 437. Path Sum III(统计路径和等于sum的路径数量)
    LeetCode 112. Path Sum(判断路径和是否等于一个数)
    LeetCode 617. Merge Two Binary Trees(归并两棵二叉树)
    LeetCode 226. Invert Binary Tree(翻转二叉树)
    Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 的解决办法
    linux-查询某软件的安装的目录
    WebService概念解释
  • 原文地址:https://www.cnblogs.com/kailugaji/p/15192458.html
Copyright © 2011-2022 走看看