首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个网络共享变量

多个网络共享变量
EN

Stack Overflow用户
提问于 2018-07-24 03:18:42
回答 1查看 29关注 0票数 0

我刚刚开始使用Tensorflow,有一个关于共享变量的问题。

我同时运行两个神经网络,但我希望它们共享权重和偏差。我的成本函数将是这两个网络的组合。我想用tf.layers.dense。这段代码会不会产生我想要的共享特性?

代码语言:javascript
复制
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))))
EN

回答 1

Stack Overflow用户

发布于 2018-07-24 05:04:10

您希望在一致的variable scope下构建您的层。变量作用域只是增加了变量的名称,同时允许您灵活地选择重用变量。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51485804

复制
相关文章

相似问题

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