Python 如何复制tensorflow层?
假设我在Tensorflow中有一个层(即同名作用域下的操作集合)。如何将其与输入连接一起复制 更具体地说,假设我有以下图表:Python 如何复制tensorflow层?,python,tensorflow,keras,Python,Tensorflow,Keras,假设我在Tensorflow中有一个层(即同名作用域下的操作集合)。如何将其与输入连接一起复制 更具体地说,假设我有以下图表: A --> B --> C --> D 现在我想将C复制为C1,其中C是一个完整的名称范围: A --> B --> C --> D \-> C 如何在TensorFlow中实现这一点?可以使用。让我们看看如何做到这一点: 导入tensorflow.contrib.graph\u编辑器作为ge #获取给定层的
A --> B --> C --> D
现在我想将C
复制为C1
,其中C
是一个完整的名称范围:
A --> B --> C --> D
\-> C
如何在TensorFlow中实现这一点?可以使用。让我们看看如何做到这一点:
导入tensorflow.contrib.graph\u编辑器作为ge
#获取给定层的子图视图
layer\u sgv=ge.make\u view\u from\u scope(layer\u name,tf.get\u default\u graph())
#从ops外部检索层的传入张量。
#我们需要这些来在复制时保留输入层次结构。
替换_ts={}
对于层中的op_sgv.输入:
替换\u ts[op]=op
#复制图层
复制\u sgv,info=ge.copy\u与\u输入\u替换(
第二层sgv,
更换=更换,
src_scope=图层名称,
dst_范围=新层(层名称)
您可以在
子图形视图
上阅读更多内容解决方案可分为两部分
1.复制图层的图形
这很简单:只需使用创建该层的相同代码即可。我建议使用Keras而不是原始的TensorFlow,这将使您在执行此步骤时更加灵活和容易
2.复制重量
其思想是只需要复制tf.Variables
,它基本上是一组以下操作:初始值设定项
、内核
和赋值
。这是一个很好的解释。因此,代码如下所示:
vars=tf.trainable_variables()#获取变量
vars_vals=sess.run(vars)#获取它们作为numpy数组的权重
vars_duplicates=…#在这里,获取你所在层的权重,
#那应该是相同的顺序
对于var,zip中的val(var_重复项,var_val):
可变负载(val,sess)
谢谢!你知道我如何优雅地复制变量的权重吗?