Tensorflow 多网络共享变量
我刚刚开始学习Tensorflow,有一个关于共享变量的问题Tensorflow 多网络共享变量,tensorflow,Tensorflow,我刚刚开始学习Tensorflow,有一个关于共享变量的问题 def NN_function(x1): with tf.variable_scope('NN_func', reuse=tf.AUTO_REUSE): x1 = tf.layers.dense(x1,20, reuse=True,name="name1") x2 = tf.layers.dense(x1,10, reuse=True,name="name2") x3 =
def NN_function(x1):
with tf.variable_scope('NN_func', reuse=tf.AUTO_REUSE):
x1 = tf.layers.dense(x1,20, reuse=True,name="name1")
x2 = tf.layers.dense(x1,10, reuse=True,name="name2")
x3 = tf.layers.dense(x2,5, reuse=True,name="name3")
output = tf.layers.dense(x3,2, reuse=True,name="nam4")
return output
我同时运行两个神经网络,但我希望它们都共享权重和偏差。我的成本函数将是两个网络的组合。我想用tf.layers.dense。这段代码会导致我所寻找的共享性质吗
def NN_function(x1):
x1 = tf.layers.dense(x1,20, reuse=True,name="name1")
x2 = tf.layers.dense(x1,10, reuse=True,name="name2")
x3 = tf.layers.dense(x2,5, reuse=True,name="name3")
output = tf.layers.dense(x3,2, reuse=True,name="nam4")
return output
pred_1 = NN_function(input_1)
pred_2 = NN_function(input_2)
costNN = tf.add(tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits= pred_1,
labels=ply_2)),
(alpha * tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits= pred_2,
labels=PLy_1))))
您希望在一致的模式下构建层。变量范围只是增加了变量的名称,同时允许您灵活地选择重用变量
def NN_function(x1):
with tf.variable_scope('NN_func', reuse=tf.AUTO_REUSE):
x1 = tf.layers.dense(x1,20, reuse=True,name="name1")
x2 = tf.layers.dense(x1,10, reuse=True,name="name2")
x3 = tf.layers.dense(x2,5, reuse=True,name="name3")
output = tf.layers.dense(x3,2, reuse=True,name="nam4")
return output