Я пытаюсь воспроизвести архитектуру BigGAN в Tensorflow https://arxiv.org/pdf/1809.11096.pdf, но не понимаю точной природы входных данных. Генератор BigGAN имеет 2 входа, шум z
, который представляет собой вектор [batch size, 120]
элементов, взятых из нормального распределения, и вектор Embedded(y)
, имеющий размер [batch size,128]
, где y
- вектор меток классов. Глядя на tfhub https://tfhub.dev/deepmind/biggan-128/2 пример кода
# Load BigGAN 128 module.
module = hub.Module('https://tfhub.dev/deepmind/biggan-128/2')
# Sample random noise (z) and ImageNet label (y) inputs.
batch_size = 8
truncation = 0.5 # scalar truncation value in [0.02, 1.0]
z = truncation * tf.random.truncated_normal([batch_size, 120]) # noise sample
y_index = tf.random.uniform([batch_size], maxval=1000, dtype=tf.int32)
y = tf.one_hot(y_index, 1000) # one-hot ImageNet label
# Call BigGAN on a dict of the inputs to generate a batch of images with shape
# [8, 128, 128, 3] and range [-1, 1].
samples = module(dict(y=y, z=z, truncation=truncation))
я понимаю, что y
- это горячая форма и Embedded(y)
является отображением этих меток классов.