3

RNN と LSTM を使用した Keras のテキスト生成の例を見ていますが、 epochiterationという用語の違いについてまだ混乱しています。

ここに同じことを尋ねる前の質問がありますが、私は答えを理解できません。または、この答えは私が理解している方法とは異なり、次の例での処理方法とも異なります。この回答に基づいて、

1エポック= すべてのトレーニング例の 1 つの順方向パスと 1 つの逆方向パス

反復回数=パス回数、[バッチ サイズ] を使用した各パスのサンプル数。

例: 1000 個のトレーニング サンプルがあり、バッチ サイズが 500 の場合、1 エポックを完了するのに 2 回の反復が必要です。

こう締めくくります(#training examples/batch size) = (#iterations/#epochs)

ただし、次のは、私が理解しているように、前の結論とは異なります。

# train the model, output generated text after each iteration
for iteration in range(1, 60):
    print()
    print('-' * 50)
    print('Iteration', iteration)
    model.fit(X, y, batch_size=128, nb_epoch=1)

    start_index = random.randint(0, len(text) - maxlen - 1)

    for diversity in [0.2, 0.5, 1.0, 1.2]:
        print()
        print('----- diversity:', diversity)

        generated = ''
        sentence = text[start_index: start_index + maxlen]
        generated += sentence
        print('----- Generating with seed: "' + sentence + '"')
        sys.stdout.write(generated)

        for i in range(400):
            x = np.zeros((1, maxlen, len(chars)))
            for t, char in enumerate(sentence):
                x[0, t, char_indices[char]] = 1.

            preds = model.predict(x, verbose=0)[0]
            next_index = sample(preds, diversity)
            next_char = indices_char[next_index]

            generated += next_char
            sentence = sentence[1:] + next_char

            sys.stdout.write(next_char)
            sys.stdout.flush()
        print()

ここでは、反復60で、エポック数が1に設定されているため、かなり混乱しました。述べたように、60回の反復for iteration in range(1, 60)があるようです。そして、反復ごとに、 for ループごとに記述されているように 1 つのエポックが実行されました。model.fit(X, y, batch_size=128, nb_epoch=1)繰り返しますが、ここにはbatch_size=128. では、反復とは正確には何を意味するのでしょうか?

この例に基づいて、反復エポック の違いを誰でも説明できますか?

4

2 に答える 2