Как сгенерировать новые образцы из GPT-2?

Я хочу генерировать новую случайную безусловную выборку из GPT-2 каждый раз, когда вызывается функция.

В настоящее время, когда generate_poetryвызывается, он продолжает генерировать тот же образец текста. Почему это?

Я использую Flask с Flask-SocketIO. В настоящее время пытаюсь заставить генератор генерировать новый образец каждый раз при нажатии кнопки на веб-странице.

См. Соответствующий код ниже:

      class AI:
    def generate_poetry(self):
        model_name='poet'
        seed=None
        nsamples=1
        batch_size=1
        length=40
        temperature=0.75
        top_k=40
        top_p=0.0

        self.response = ""

        enc = encoder.get_encoder(model_name)
        cur_path = os.path.dirname(__file__) + "/models" + "/" + model_name
        hparams = model.default_hparams()
        with open(cur_path + '/hparams.json') as f:
            hparams.override_from_dict(json.load(f))

        with tf.Session(graph=tf.Graph()) as sess:
            np.random.seed(seed)
            tf.set_random_seed(seed)

            output = sample.sample_sequence(
                hparams=hparams, length=length,
                start_token=enc.encoder['<|endoftext|>'],
                batch_size=batch_size,
                temperature=temperature, top_k=top_k, top_p=top_p
            )[:, 1:]

            saver = tf.train.Saver()
            ckpt = tf.train.latest_checkpoint(cur_path)
            saver.restore(sess, ckpt)

            generated = 0
            while nsamples == 0 or generated < nsamples:
                out = sess.run(output)
                for i in range(batch_size):
                    generated += batch_size
                    text = enc.decode(out[i])
                    self.response = text

        return self.response

ai = AI()
      @socketio.on('buttonclicked')
def handle_click(data):
    print("button clicked")
    text = ai.generate_poetry()
    print(text)

0 ответов

Другие вопросы по тегам