首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow图编辑器重路由复杂网络

Tensorflow图编辑器重路由复杂网络
EN

Stack Overflow用户
提问于 2017-01-31 13:32:32
回答 1查看 1.9K关注 0票数 5

我试图用定制的操作来包装操作。

我解决了目标操作的输入(图片中的A),但包装输出失败。

Init网络操作看起来是这样的。

代码语言:javascript
复制
 C   D
/ \ /
B  A

假设每个运算都有一个输出张量。我想添加“E”操作

代码语言:javascript
复制
 C   D
/ \ /
B  E
   |
   A

我受够了图形编辑器(API r0.12)

我的策略是连接A和断开(C,D)-A和连接(C,D)-E

  1. ge.connect(E,C,D) -失败是因为op C有2个输入
  2. 使用ge.swap_inputs 2次失败,我可以附加E和D,但仍然存在断开C和连接use的问题

我怎么能改变呢?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-31 18:08:41

您需要做一些子图重映射,以确保两个子图的签名匹配。要做到这一点,打印子图是有帮助的。

代码语言:javascript
复制
tf.reset_default_graph()

a = tf.placeholder(dtype=tf.float32, name="a")
b = tf.placeholder(dtype=tf.float32, name="b")
c = tf.add(a, b, name="c")
d = tf.identity(a, name="d")

e = tf.identity(a, name="e")
print(ge.sgv(e.op))
print(ge.sgv(c.op, d.op).remap_inputs([0]))
ge.connect(ge.sgv(e.op), ge.sgv(c.op, d.op).remap_inputs([0]))

产出:

代码语言:javascript
复制
SubGraphView (graphid=241109520):
** ops[1]:
  e
** inputs[1]:
  a:0
** outputs[1]:
  e:0

SubGraphView (graphid=241109520):
** ops[2]:
  c
  d
** inputs[1]:
  a:0
** outputs[2]:
  c:0
  d:0
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41958921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档