Активация Gumbel-Softmax в генеративной состязательной сети в Tensorflow 2.1 - PullRequest
0 голосов
/ 05 марта 2020

Моя цель состоит в том, чтобы создать генеративную состязательную сеть, которая генерирует реально выглядящие последовательности категориальной переменной, аналогично [1]. Для генерации категориальных последовательностей с помощью генератора мне нужно использовать активацию Gumbel_Softmax, чтобы убедиться, что обратное распространение все еще работает. Я не могу найти предварительно сформулированную функцию активации Gumbel_softmax в Tensorflow 2.1, только tfp.distributions.RelaxedOneHotCategorical, которая должна работать для моей проблемы.

В моем примере я хотел бы сгенерировать последовательность двоичных переменных. Можете ли вы дать мне пример кода, как реализовать это в функциональном API Тензор потока.

Может быть, вы можете gr asp моя цель из моего текущего кода:

generator():

    inputs = Input(latent_dim,)

    x = Dense(t_steps* no_states, activation='relu')(inputs)
    x = Reshape((t_steps, no_states))(x)

    x = tfpl.RelaxedOneHotCategorical(temperature=t, logits=no_states, Batch_shape=t_steps)

    outputs=x

    noise = Input(shape=(latent_dim,))
    inp = model(noise)

    return Model(noise, inp)

[1] GANS для последовательностей дискретных элементов с распределением Gumbel-softmax по Kusner et al. 2016

1 Ответ

0 голосов
/ 31 марта 2020

Я создал собственный слой GumbelSoftmax для использования в Tensorflow 2 +.

При использовании с GAN говорят, что лучше использовать обратный параметр температуры, то есть умножить y * tau вместо y / tau.

https://github.com/gugarosa/nalp/blob/master/nalp/models/layers/gumbel_softmax.py

...