что означает make_z в генераторе - PullRequest
0 голосов
/ 26 февраля 2019

Недавно я читаю статью 《SEGAN: Генеративная состязательная сеть по улучшению речи》.Когда я попытался повторить эксперимент, у меня возникла проблема. Что значит make_z означает в generator.py? Что делает эта часть?Генератор класса (объект):

def __init__(self, segan):
    self.segan = segan

def __call__(self, noisy_w, is_ref, spk=None):
    """ Build the graph propagating (noisy_w) --> x
    On first pass will make variables.
    """
    segan = self.segan

    def make_z(shape, mean=0., std=1., name='z'):
        if is_ref:
            with tf.variable_scope(name) as scope:
                z_init = tf.random_normal_initializer(mean=mean, stddev=std)
                z = tf.get_variable("z", shape,
                                    initializer=z_init,
                                    trainable=False
                                    )
                if z.device != "/device:GPU:0":
                    # this has to be created into gpu0
                    print('z.device is {}'.format(z.device))
                    assert False
        else:
            z = tf.random_normal(shape, mean=mean, stddev=std,
                                 name=name, dtype=tf.float32)
        return z

(код: https://github.com/santi-pdp/segan)

...