Tensorflow 中scope重复利用Variable 或者 训练参数

本文介绍了在TensorFlow中如何实现变量共享,特别是在RNN中重复使用变量的方法。通过使用`tf.variable_scope`并调用`reuse_variables()`可以实现变量的共享,避免重复创建相同的变量。此外,还提供了一个RNN的例子来说明如何在训练过程中重复利用参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

前言:

        在Tensorflow中我们想共享变量的时候,需要在一个name_scope下,网络中的一些参数有时利用也是如此,尤其是在RNN中,接下来向大家举例!

 

代码如下:

#这里的每个变量都不一样,没有共享

with tf.name_scope("a_name_scope"):

    initializer = tf.constant_initializer(value=1)
    var1 = tf.get_variable(name='var1', shape=[1], dtype=tf.float32, initializer=initializer)
    var2 = tf.Variable(name='var2', initial_value=[2], dtype=tf.float32)
    var21 = tf.Variable(name='var2', initial_value=[2.1], dtype=tf.float32)

 

#这里的var3 重复利用,共享变量

with tf.variable_scope("a_variable_scope") as scope:
    initializer = tf.constant_initializer(value=3)
    var3 = tf.get_variable(name='var3', shape=[1], dtype=tf.float32, initializer=initializer)
    scope.reuse_variables()
    var3_reuse = tf.get_variable(name='var3',)

 

 

#这里RNN,重复利用训练的参数例子

with tf.variable_scope('rnn') as scope:

    sess = tf.Session()
    train  = RNN(train_config)
    scope.reuse_variables()
    test = RNN(test_config)
    sess.run(tf.global_variables_initializer())

 

欢迎大家学习交流!  ;)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值