Как произвести горячий вывод в керасах? - PullRequest
0 голосов
/ 29 апреля 2018

Обычно в нейронной сети нет необходимости генерировать один горячий векторный вывод; однако я пытаюсь обучить GAN, поэтому выходные данные одной сети должны совпадать с входными данными другой. В настоящее время последний слой в моем генераторе является плотным софтмаксом, так что у меня есть распределение вероятностей по выходам, но мне нужно преобразовать этот вектор в один горячий, чтобы он соответствовал входу, который ожидает дискриминатор. Кажется, нет никакого встроенного слоя, чтобы сделать это с керасом. Я пытаюсь написать лямбда-выражение, но не могу заставить его работать.

Вот код прямо сейчас:

    s1 = Input(shape=(self.sentence_length,))

    embed = Embedding(output_dim=self.embedding_vector_length,
            input_dim=self.vocabulary_size,
            input_length=self.sentence_length)(s1)
    x = concatenate([embed,embed],axis=1)
    x = LSTM(self.latent_dimension,return_sequences=True)(x)
    x = LSTM(self.embedding_vector_length,return_sequences=True)(x)
    x = Lambda(lambda s: s[:,15:,:])(x)
    x = Dense(self.vocabulary_size,activation='softmax')(x)
    # x = Lambda(???)
    model = Model(s1,x)
    model.summary()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...