zoukankan      html  css  js  c++  java
  • 为什么要写 tf.Graph().as_default()

    首先,去tensorflow官网API上查询 tf.Graph() 会看到如下图所示的内容:

    总体含义是说:

    tf.Graph() 表示实例化了一个类,一个用于 tensorflow 计算和表示用的数据流图,通俗来讲就是:在代码中添加的操作(画中的结点)和数据(画中的线条)都是画在纸上的“画”,而图就是呈现这些画的纸,你可以利用很多线程生成很多张图,但是默认图就只有一张。

    tf.Graph().as_default() 表示将这个类实例,也就是新生成的图作为整个 tensorflow 运行环境的默认图,如果只有一个主线程不写也没有关系,tensorflow 里面已经存好了一张默认图,可以使用tf.get_default_graph() 来调用(显示这张默认纸),当你有多个线程就可以创造多个tf.Graph(),就是你可以有一个画图本,有很多张图纸,这时候就会有一个默认图的概念了。

    具体的示例代码如下,和图中的一样:

     1 import tensorflow as tf
     2 c=tf.constant(4.0)
     3 assert c.graph is tf.get_default_graph() #看看主程序中新建的一个变量是不是在默认图里
     4 g=tf.Graph()
     5 with g.as_default():
     6     c=tf.constant(30.0)
     7     assert c.graph is g
     8 '''
     9 最终结果是没有报错
    10 '''

    结语:以上内容纯属自己理解,如有不当之处还请指正;欢迎转载,标明出处。

  • 相关阅读:
    codeforces-1194 (div2)
    单链表1(悲剧文本)
    迷宫(深度搜索)
    皇后问题
    关键路径
    [NOI2015]软件包管理器
    [USACO13JAN]岛游记Island Travels
    仓鼠找sugar
    [SHOI2012]魔法树
    [HEOI2016/TJOI2016]树
  • 原文地址:https://www.cnblogs.com/studylyn/p/9105818.html
Copyright © 2011-2022 走看看