Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何复制tensorflow层?_Python_Tensorflow_Keras - Fatal编程技术网

Python 如何复制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 #获取给定层的

假设我在Tensorflow中有一个层(即同名作用域下的操作集合)。如何将其与输入连接一起复制

更具体地说,假设我有以下图表:

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)

谢谢!你知道我如何优雅地复制变量的权重吗?