如何在variable_scope中动态更改重用变量?

时间:2019-05-29 07:59:33

标签: python tensorflow

我想在训练阶段通过在模型函数中传递参数来将重用变量值从False动态更改为True。

我尝试过

def model_func(reuse=True):
    with tf.variable_scope('batch_norm',reuse = reuse):
      #...some batch normalization layer...

这是我的原始代码:

def model_architecture(self, X, keep_prob,reuse=True,is_training=True):
        with tf.variable_scope("model_architecture", reuse=reuse):
            # Reshape input picture
            X = tf.reshape(X, shape=[-1, self.height, self.width, 1])
            #               --{1st BLOCK}--
            # 1st layer
            shape = [3,3,1,4] # first layer
            with tf.variable_scope("convolution_layer1",reuse=reuse):
                conv_l1 = mf.conv_layer(X,shape,"conv_l1")
            with tf.variable_scope("batch_norm_layer1",reuse=reuse):
                conv_l1 = mf.batch_n(conv_l1,'batch_norm_l1')

值错误8 重用必须为True,False或None

所以我需要调用 model_architecture(...,reuse = False,..) 并更改所有变量范围,重用变量的值。有办法吗?

我需要这个,因为我将训练集划分为输入数据量较大的较小训练集,因此我在一组保存/恢复中训练模型,并使用新输入从最后一点继续训练。有办法吗?

0 个答案:

没有答案