我想在训练阶段通过在模型函数中传递参数来将重用变量值从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,..) 并更改所有变量范围,重用变量的值。有办法吗?
我需要这个,因为我将训练集划分为输入数据量较大的较小训练集,因此我在一组保存/恢复中训练模型,并使用新输入从最后一点继续训练。有办法吗?