Was ist der schnellste Weg, um Daten für RNN mit numpy vorzubereiten?

Ich habe derzeit ein(1631160,78) np Array als Eingabe für ein neuronales Netzwerk. Ich möchte etwas mit LSTM ausprobieren, das eine 3D-Struktur als Eingabedaten benötigt. Ich benutze derzeit den folgenden Code, um die benötigte 3D-Struktur zu generieren, aber es ist sehr langsam (ETA> 1 Tag). Gibt es einen besseren Weg, dies mit Numpy zu tun?

Mein aktueller Code zum Generieren von Daten:

def transform_for_rnn(input_x, input_y, window_size):
    output_x = None
    start_t = time.time()
    for i in range(len(input_x)):
        if i > 100 and i % 100 == 0:
            sys.stdout.write('\rTransform Data: %d/%d\tETA:%s'%(i, len(input_x), str(datetime.timedelta(seconds=(time.time()-start_t)/i * (len(input_x) - i)))))
            sys.stdout.flush()
        if output_x is None:
            output_x = np.array([input_x[i:i+window_size, :]])
        else:
            tmp = np.array([input_x[i:i+window_size, :]])
            output_x = np.concatenate((output_x, tmp))

    print
    output_y = input_y[window_size:]
    assert len(output_x) == len(output_y)
    return output_x, output_y

Antworten auf die Frage(2)

Ihre Antwort auf die Frage