我正在编写自己的功能层,如
def vgg_block(x, is_training, output_depth,... name = "vgg_block"):
with tf.variable_scope(name):
if pool_size is not None:
x = tf.layers.max_pooling2d(x, pool_size=pool_size, strides=pool_strides, padding=pool_padding)
for i_conv in range(n_convs):
x = conv2d_bn(x, is_training, output_depth, kernel_size=conv_size, strides=conv_strides, padding=conv_padding, bn=conv_bn,
activation=conv_activation)
return x
并希望他们可以自动命名为内置命名。
不幸的是,如果我按上述方式编写,我会收到重复的错误,因为我的内部函数会创建相同的内部范围。
是否有可能要求TF在每次通话时生成新的单一变量范围名称?
答案 0 :(得分:2)
执行tf.variable_scope(name=None, default_name=name)
,保证创建一个名称类似名称的新变量范围。