错误Tensor is not an element of this graph tensorflow

原创 2016年12月03日 22:14:05

1、说明:tensorflow使用图来定义计算,在session中来执行图中定义的计算,如果没有显式的说明,那么session就跟默认的图相关联.graph 和 session应该是一一对应的.下面,举例说明,session如果和graph不一一对应的话,会出现error

import tensorflow as tf

def activation(e, f, g):

  return e + f + g

with tf.Graph().as_default():
  a = tf.constant([5, 4, 5], name='a')
  b = tf.constant([0, 1, 2], name='b')
  c = tf.constant([5, 0, 5], name='c')

  res = activation(a, b, c)

init = tf.initialize_all_variables()

with tf.Session() as sess:
  # Start running operations on the Graph.
  sess.run(init)
  hi = sess.run(res)
  print hi

说明:运行该脚本会报错:is not an element of this graph。该错误的意思就是说操作不在图中,也就是和我们的session相关联的图中并没有该操作.why?

2、分析原因:

首先,tensorflow会为我们指定一张默认的图.然后sesssion会直接和该默认图相关联.除非我们自定义一张图.不然,我们的操作都是在那张默认图上的.然后我们分析报错的代码:

import tensorflow as tf

def activation(e, f, g):

  return e + f + g

with tf.Graph().as_default():
  a = tf.constant([5, 4, 5], name='a')
  b = tf.constant([0, 1, 2], name='b')
  c = tf.constant([5, 0, 5], name='c')

  res = activation(a, b, c)
说明:此段代码描述的是,新增一张图,然后在该图上去定义操作,也就是目前我们有两张图,一张是系统自定义的图.

init = tf.initialize_all_variables()

with tf.Session() as sess:
  # Start running operations on the Graph.
  sess.run(init)
  hi = sess.run(res)
  print hi
说明:此段代码,其实是描述的是,在默认的图上去定义了初始化操作,然后想在默认图上去执行res操作,注意res操作是在我们自定义的图上的。所以,当然是会报错的.

修改一:

import tensorflow as tf

def activation(e, f, g):

  return e + f + g

with tf.Graph().as_default():
  a = tf.constant([5, 4, 5], name='a')
  b = tf.constant([0, 1, 2], name='b')
  c = tf.constant([5, 0, 5], name='c')

  res = activation(a, b, c)

init = tf.initialize_all_variables()

with tf.Session() as sess:
  # Start running operations on the Graph.
  sess.run(init)
  #hi = sess.run(res)
  #print hi
说明:这样修改就没问题,只在session上运行init操作,也就是在默认图上执行session操作.

修改二:

import tensorflow as tf

def activation(e, f, g):

  return e + f + g

with tf.Graph().as_default():
  a = tf.constant([5, 4, 5], name='a')
  b = tf.constant([0, 1, 2], name='b')
  c = tf.constant([5, 0, 5], name='c')

  res = activation(a, b, c)

  init = tf.initialize_all_variables()

  with tf.Session() as sess:
    # Start running operations on the Graph.
    sess.run(init)
    hi = sess.run(res)
    print hi

说明:把所有的操作都定义在我们指定的图上面,并且,session也定义在缩进内,相当于该session只和我们定义的图相关联,只执行我们定义在图内的操作,这样就不会报错.



错误Tensor is not an element of this graph tensorflow

1、说明:tensorflow使用图来定义计算,在session中来执行图中定义的计算,如果没有显式的说明,那么session就跟默认的图相关联.graph 和 session应该是一一对应的.下面,...

######(较深的应用)TensorFlow学习(三):Graph和Session ######(较深的应用)

之前讲完变量常量等等基本量的操作,意味着最基本的东西都有了,然后接下来很重要的就是那些量和操作怎么组成更大的集合,怎么运行这个集合。这些就是计算图谱graph和Session的作用了。 IV.Gra...

cuckoo安装指南(四)

引言: Cuckoo是一个非常流行的恶意软件或者攻击分析系统,通过cuckoo可以方便地帮助安全研究人员验证恶意程序的特征信息,本文将详细描述其运行环境的搭建过程。由于整个过程比较庞杂,故将分为4篇来...

FFmpeg基础库编程开发学习笔记——音频常见格式及字幕格式

声明一下:这些关于ffmpeg的文章只是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其他文章、书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚开...

关于xml配置文件无元素提示和the root element of the document is not <xsd:schema>.错误

这两个问题可以用同一种方式去解决。框架的XML文件在加载xsd或dtd文件时总是先试图在本地查找xsd文件,如果没有找到,才会转向去URL指定的路径下载。 解决方案如下: 按照图上标注的顺序...

《React-Native系列》17、 RN中this所引起的undefined is not an object错误

在我们编写RN代码的时候经常会出现一个错误,undefined is not an object(evaluating 'this.refs' ). undefined is not an objec...

ValueOperations的increment方法ERR value is not an integer or out of range错误解释

最近在开发中,使用Redis来实现数据点击量的统计存储功能。为什么使用Redis?点击量之类的功能,需要频繁触发更新操作,而且高并发访问时,还需要考虑操作冲突导致数据不一致的问题。而Redis是内存型...

Incorrect decrement of the reference count of an object that is not owned at this point by the calle

Incorrect decrement of the reference count of an object that is not owned at this point by the cal...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:错误Tensor is not an element of this graph tensorflow
举报原因:
原因补充:

(最多只允许输入30个字)