Vektorisierte Proben einer Stapel ohne Schleife?
Posted: 05 Mar 2025, 08:14
Ich lerne, Proben auf vektorisierte Weise zu machen, anstatt sie nacheinander in einer Schleife zu machen, wenn ich ein DL -Modell trainiere (als dumme C ++ - Programme, ich wurde verwendet, um alles in einer Schleife zu tun). Eine Forloop -Methode macht den Prozess zu langsam.
Ich muss alle Stichproben dieser Stapel mit einem überlappenden Fenster über den Originaldaten erstellen. wie: < /p>
Würde ein Goodman bitte bitte beibringen, wie man es auf vektorisierte Weise bekommt?
Code: Select all
ar = np.array( [
# timestamp, feature0, feature1, feature2, feature3
[ 107, 10700, 10701, 10702, 10703 ], # timestep 7
[ 106, 10600, 10601, 10602, 10603 ], # timestep 6
[ 105, 10500, 10501, 10502, 10503 ], # timestep 5
[ 104, 10400, 10401, 10402, 10403 ], # timestep 4
[ 103, 10300, 10301, 10302, 10303 ], # timestep 3
[ 102, 10200, 10201, 10202, 10203 ], # timestep 2
[ 101, 10100, 10101, 10102, 10103 ], # timestep 1
[ 100, 10000, 10001, 10002, 10003 ] # timestep 0
] )
< /code>
Wenn der Modle -Daten -Daten -MODLE -Datensatz die Methode __GetItem __ < /code> meines benutzerdefinierten Datensatzes mit einem integralen Argument aufgerufen wird, ist dies eine Batch -ID anstelle einer Beispiel -ID.class SqlDataSet(tf.keras.utils.PyDataset):
...
...
def __getitem__( self, batch_id ):
pass
Code: Select all
def __getitem__( self, batch_id ):
X = []
x_idxes = map_to_idxes( batch_id ) # producing code looks like this
x_idxes = np.array( [1, 3, 5] ) # simplified for discussing
for i in x_idxes:
X.append( ar[ i:i + window_size, 1:2 ] )
return np.array( X ), Y