逐步构建 tf.Graph 并执行它

蓝夏

我正在尝试tf.Graph根据某些条件逐步构建一个并在我完成附加后运行一次。

代码如下所示:

class Model:
    def __init__(self):
        self.graph = tf.Graph()
        ... some code ...

    def build_initial_graph(self):
        with self.graph.as_default():
            X = tf.placeholder(tf.float32, shape=some_shape)
            ... some code ...

    def add_to_existing_graph(self):
        with self.graph.as_default():
            ... some code adding more ops to the graph ...

    def transform(self, data):
        with tf.Session(graph=self.graph) as session:
             y = session.run(Y, feed_dict={X: data})
        return y

调用方法看起来像这样

model = Model()
model.build_initial_graph()
model.add_to_existing_graph()
model.add_to_existing_graph()
result = model.transform(data)

所以,两个问题

  1. 这种向现有图形添加操作的方式合法吗?在不同的地方使用相同的图形对象还是会覆盖旧的对象?
  2. 关于转换方法,Xfeed_dict运行代码时无法识别,实现该目标的正确方法是什么?
粉煤灰

Q1:这当然是构建模型的合法方式,但更多的是意见问题。我只会建议将您的张量存储为属性(请参阅 Q2 的答案。)self.X=...

您可以查看这篇关于如何以面向对象的方式构建 TensorFlow 模型的非常好的文章

Q2:原因很简单,因为变量X不在你的transform方法范围内
如果您执行以下操作,一切都会正常进行:

def build_initial_graph(self):
    with self.graph.as_default():
        self.X = tf.placeholder(tf.float32, shape=some_shape)
        ... some code ...

def transform(self, data):
    with tf.Session(graph=self.graph) as session:
         return session.run(self.Y, feed_dict={self.X: data})

更详细地说,在 TensorFlow 中,您定义的所有张量或操作(例如tf.placeholdertf.matmul)都在tf.Graph()you re working on. You might want to store them in Python variable, as you did by doingX = tf.placeholder`中定义,但这不是强制性的。

如果您想访问您定义的张量之一,您可以

  • 使用 Python 变量(这是您的尝试,只是该变量X不在方法的范围内)或者,
  • 直接从图中检索它们(您需要知道它的名称),使用tf.get_variable方法)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

逐步构建(汇总)总和

来自分类Dev

Apache Spark:逐步执行

来自分类Dev

如何逐步执行Julia脚本?

来自分类Dev

如何逐步执行我的代码?

来自分类Dev

在tf.Graph()外部定义的TensorFlow会话运行图

来自分类Dev

需要“构建”一个mysql命令并在一个shell脚本中执行它

来自分类Dev

Oracle存储过程-逐步构建out变量

来自分类Dev

从大型数据集中逐步构建箱线图

来自分类Dev

如何逐步执行lambda表达式

来自分类Dev

代码运行正常,但逐步执行时出错

来自分类Dev

逐步执行ScriptEngine评估的JavaScript代码

来自分类Dev

使用按钮而不是input()逐步执行功能

来自分类Dev

不能使用TF Service构建,可以在本地构建

来自分类Dev

Docker:与手动逐步构建相比,构建结果不同

来自分类Dev

Tensorflow 2 API:不推荐使用名称tf.get_default_graph。请改用tf.compat.v1.get_default_graph

来自分类Dev

给定可执行文件,我可以确定用于构建它的GOOS和GOARCH的值吗?

来自分类Dev

一旦将Rust可执行文件构建在Docker容器中,该如何获得它?

来自分类Dev

使用 LTO(链接时间优化)静态链接的可执行文件:如何使用以前构建的库制作它

来自分类Dev

如何以编程方式逐行执行/逐步执行Python代码

来自分类Dev

采取那个析因函数并逐步解决它

来自分类Dev

使用TF270016 / TF270002的本地Build Server上的TFS在线构建失败

来自分类Dev

使用TF270016 / TF270002的本地Build Server上的TFS在线构建失败

来自分类Dev

如何使用tf.train.shuffle_batch构建用于训练和推理的TF图?

来自分类Dev

AttributeError:“ Operation”对象在tf.keras.models.save_model()中没有属性“ _graph”

来自分类Dev

如何在knitr中使用网格逐步构建分层图?

来自分类Dev

TF.EXE命令,不包括可执行(* .DLL)文件

来自分类Dev

在张量的中间执行tf.signal.fft2d

来自分类Dev

急切地执行 tf.dataset 实例

来自分类Dev

如何在Anjuta中逐步执行C程序?

Related 相关文章

  1. 1

    逐步构建(汇总)总和

  2. 2

    Apache Spark:逐步执行

  3. 3

    如何逐步执行Julia脚本?

  4. 4

    如何逐步执行我的代码?

  5. 5

    在tf.Graph()外部定义的TensorFlow会话运行图

  6. 6

    需要“构建”一个mysql命令并在一个shell脚本中执行它

  7. 7

    Oracle存储过程-逐步构建out变量

  8. 8

    从大型数据集中逐步构建箱线图

  9. 9

    如何逐步执行lambda表达式

  10. 10

    代码运行正常,但逐步执行时出错

  11. 11

    逐步执行ScriptEngine评估的JavaScript代码

  12. 12

    使用按钮而不是input()逐步执行功能

  13. 13

    不能使用TF Service构建,可以在本地构建

  14. 14

    Docker:与手动逐步构建相比,构建结果不同

  15. 15

    Tensorflow 2 API:不推荐使用名称tf.get_default_graph。请改用tf.compat.v1.get_default_graph

  16. 16

    给定可执行文件,我可以确定用于构建它的GOOS和GOARCH的值吗?

  17. 17

    一旦将Rust可执行文件构建在Docker容器中,该如何获得它?

  18. 18

    使用 LTO(链接时间优化)静态链接的可执行文件:如何使用以前构建的库制作它

  19. 19

    如何以编程方式逐行执行/逐步执行Python代码

  20. 20

    采取那个析因函数并逐步解决它

  21. 21

    使用TF270016 / TF270002的本地Build Server上的TFS在线构建失败

  22. 22

    使用TF270016 / TF270002的本地Build Server上的TFS在线构建失败

  23. 23

    如何使用tf.train.shuffle_batch构建用于训练和推理的TF图?

  24. 24

    AttributeError:“ Operation”对象在tf.keras.models.save_model()中没有属性“ _graph”

  25. 25

    如何在knitr中使用网格逐步构建分层图?

  26. 26

    TF.EXE命令,不包括可执行(* .DLL)文件

  27. 27

    在张量的中间执行tf.signal.fft2d

  28. 28

    急切地执行 tf.dataset 实例

  29. 29

    如何在Anjuta中逐步执行C程序?

热门标签

归档