Wenn die Längen der einzelnen Vektoren nicht gleich sind, können Sie sie durch Hinzufügen von 0 oder Schneiden auf die gleiche Länge bringen.
Zum Beispiel ...
>>> from keras.preprocessing import sequence
>>> import numpy as np
>>> data = [np.array([[1,2,3],[4,5,6]]),
...         np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]])]
>>> data
[array([[1, 2, 3],
       [4, 5, 6]]), array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12],
       [13, 14, 15]])]
>>> #Richten Sie die Länge auf 4 aus.
>>> data = sequence.pad_sequences(data, maxlen=4,padding="post", truncating="post")
>>> data
array([[[ 1,  2,  3],
        [ 4,  5,  6],
        [ 0,  0,  0],
        [ 0,  0,  0]],
       [[ 1,  2,  3],
        [ 4,  5,  6],
        [ 7,  8,  9],
        [10, 11, 12]]], dtype=int32)
Wenn Sie dtype nicht angeben, wird standardmäßig der Wert von int32 zurückgegeben.
Wenn ** die Originaldaten einen Gleitkomma haben, werden sie zwangsweise in int32 ** konvertiert.
Zum Beispiel wird 0,1 zu 0.
↓ Wenn dtype nicht angegeben ist
>>> from keras.preprocessing import sequence
>>> import numpy as np
>>> #Daten gemischt mit float
>>> data = [np.array([[0.1,0.2,0.3],[0.4,0.5,0.6]]),
...         np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]])]
>>> data
[array([[0.1, 0.2, 0.3],
       [0.4, 0.5, 0.6]]), array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12],
       [13, 14, 15]])]
>>> #Richten Sie die Länge auf 4 aus.
>>> data = sequence.pad_sequences(data, maxlen=4,padding="post", truncating="post")
>>> #Der Wert, der float war, wird automatisch in int32 umgewandelt und wird zu 0
>>> data
array([[[ 0,  0,  0],
        [ 0,  0,  0],
        [ 0,  0,  0],
        [ 0,  0,  0]],
       [[ 1,  2,  3],
        [ 4,  5,  6],
        [ 7,  8,  9],
        [10, 11, 12]]], dtype=int32)
Geben Sie dtype an, wenn Sie pad_sequences verwenden.
sequence.pad_sequences(data, maxlen=4, padding="post", 
truncating="post", dtype=float32)
        Recommended Posts