如何使用给定的前缀创建唯一的变量范围名称?

时间:2017-11-15 23:04:01

标签: tensorflow

我正在编写自己的功能层,如

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在每次通话时生成新的单一变量范围名称?

1 个答案:

答案 0 :(得分:2)

执行tf.variable_scope(name=None, default_name=name),保证创建一个名称类似名称的新变量范围。