Da ich zwar X Beiträge dazu auf Stackoverflow gefunden habe, aber keiner von denen zu einer Lösung für Windows (64 bit) führte, öffne ich nun meinen eigenen thread:
Ich habe eine Liste "x" aus python Listen, welche mit einer größe von etwa (30000,48,411) zu groß ist um sie in ein 3dNumpy Array zu verfrachten...
bekomme daher den "Memory Error: unable to allocate array with shape(30000,48,411) ".
Was ich bisher versucht habe:
np.array(x, dtype=np.float32) -> bei dieser größe immernoch zu groß
np.array(x, dtype=np.float16) -> "Error tuple not callable"
np.memmep() -> kann erst klappen wenn ich das ganze als numpy array habe
jemand eine idee was ich noch machen kann? (evtl nen zaubertrick mit windows?)
(die liste wird in manchen ausführungen wahrscheinlich sogar größer sein müssen (zumindest in den ersten beiden dimensionen))
Ziel: das Array soll für das Training eines Tensorflow/Keras LongShortTermMemory Netz verwendet werden.
(enthällt dementsprechend StundenPreisdaten der letzten 20 Jahre als mit 48 stundenrück sequenz)
Memory Error: unable to allocate array with shape
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Wieviel Speicher hast Du denn? Bei `float` wären es 4,41 GiB und bei `float32` 2,2 GiB. Wobei die Liste natürlich ein Problem sein kann, denn die wird wahrscheinlich deutlich mehr belegen. Muss das denn eine Liste sein? Wie wird die aufgebaut? Kann man da nicht schon Arrays verwenden? Und/oder eine HDF5-Datei und dort die Daten beim aufbauen in eine Dimension immer erweitern?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Ich habe ca 4GiB RAM, (ob die auch von python verwendet werden weiß ich nicht sicher)__blackjack__ hat geschrieben: Dienstag 20. August 2019, 16:36 Wieviel Speicher hast Du denn? Bei `float` wären es 4,41 GiB und bei `float32` 2,2 GiB. Wobei die Liste natürlich ein Problem sein kann, denn die wird wahrscheinlich deutlich mehr belegen. Muss das denn eine Liste sein? Wie wird die aufgebaut? Kann man da nicht schon Arrays verwenden? Und/oder eine HDF5-Datei und dort die Daten beim aufbauen in eine Dimension immer erweitern?
Um den vorgang etwas zu erklären(vllt findet sich eine speichergünstigere alternative):
ich extrahiere aus einem DataFrame die jeweiligen sequenzen (48 stück, teil einer TimeSeries, daher auch LSTM) in eine liste mittels deque.
Diese liste wird dann durcheinandergewürfelt/geshufflet (innerhalb der sequenzen bleibt ja die reihenfolge behalten.
Danach muss ich die target-Labels (für das Machine Learning Model in neue listen einsortieren (buy/sell/wait (im anderen modus sind es 25 verschiedene)
und kürzen bzw mit sich selbst verlängern um auf eine balance zwischen den labels zu kommen (für besseren lernfortschritt des models später)
Code: Alles auswählen
sequential_data = []
prev_days = deque(maxlen=SEQ_LEN)
#create a list of lists == dataframe but without index, but in the same order
for i in df.values:
prev_days.append([n for n in i[:-1]]) #append up to the last one (we dont take "target" column which is the last one)
if len(prev_days) == SEQ_LEN:
sequential_data.append([np.array(prev_days,dtype=np.float16),i[-1]]) #fülle das sequenzarray mit X werten , Y werten eines samples
random.shuffle(sequential_data)# shuffle die samples
print("sequented")
execution_time = time.time() - start_time
print("--- %s seconds ---" % (execution_time))
print("now balancing data...")
print("len before balancing", len(df.values))
if TargetingMode ==0:
buys = []
sells = []
waits = []
for seq,target in sequential_data:
if target == 0:
waits.append([seq,target])
elif target == 2: # jenachdem ob wir es vorher für den softmax umwandeln
sells.append([seq,target])
elif target == 1:
buys.append([seq,target])
else:
print("Fehler beim filtern der DatenSequenzen, Wert", target, "wenn NaN, check ob FUTURE_PERIOD_PREDICT mit Target Setting übereinstimmt")
random.shuffle(buys)
random.shuffle(sells)
random.shuffle(waits)
if Balancing ==True:
print("len before balancing: ", len(sequential_data), " buys: ", len(buys)," sells: ", len(sells))
#lower = min( len(buys),len(sells))
abs_dif =round(abs(len(buys)-len(sells)) /2)
print("Mittelwert der Differenz zwischen Buys und Sells =", abs_dif)
if(len(buys)>len(sells)):
buys = buys[:-abs_dif]
elif(len(buys)<len(sells)):
sells= sells[:-abs_dif]
#buys = buys[:lower]
#sells= sells[:lower]
# nicht zuviele Waiting Values dafür aber immernoch ein vielfaches von den Tradingwerten (bzw dem Mittelwert zwischen Buy&Sell)
#waits_end = round(mine(len(buys)*OutBalanceOtherSamples,len(waits)-1))
waits = waits[:round(min(len(buys)*OutBalanceOtherSamples,len(waits)-1))]
print("len after balancing:", len( buys + sells + waits ), " buys: ", len(buys)," sells: ", len(sells))
sequential_data = buys + sells + waits
random.shuffle(sequential_data)
Code: Alles auswählen
x = []
y = []
dates=[]
print("now appending Sequence and Target to Sequential Data")
for seq,target,date in sequential_data:
x.append(seq)
y.append(target)
dates.append(date)
print("balanced")
print("converting list types to save space...")
y = [int(q) for q in y]
dates = [str(r) for r in dates]
print("converted")
print("now returning...")
return np.array(x,dtype=np.float32), y, dates
Das müssest du erklären, falls man es auf das obere Bsp anwenden kann (weil bin noch recht unerfahren)Und/oder eine HDF5-Datei und dort die Daten beim aufbauen in eine Dimension immer erweitern?
Gibt es einen Grund, alles auf einmal in das Netz fuettern zu wollen? Der Natur des Problems nach solltest du doch voellig muehelos kleiner Batches benutzen koennen, und die halt nacheinander trainieren. Darunter mag zwar ein bischen die Effizienz leiden, aber nicht signifikant wenn man trotzdem recht grosse Batches nimmt.
Also ca. 20 np arrays erstellen... (bei 10 in der größe (7000,48,411) hatte es bereits nicht geklappt mit der np.arrayerstellung)__deets__ hat geschrieben: Dienstag 20. August 2019, 17:57 Gibt es einen Grund, alles auf einmal in das Netz fuettern zu wollen? Der Natur des Problems nach solltest du doch voellig muehelos kleiner Batches benutzen koennen, und die halt nacheinander trainieren. Darunter mag zwar ein bischen die Effizienz leiden, aber nicht signifikant wenn man trotzdem recht grosse Batches nimmt.
Wenn ich mich richtig erinnere wäre das incremental Learning...
mit Keras habe ich absolut keinen Plan wie ich auf die schnelle das implementieren um zu sehen ob es machbar ist
Mein bisheriges Model sieht folgendermaßen aus:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,Dropout,LSTM,CuDNNLSTM,BatchNormalization
from tensorflow.keras.callbacks import TensorBoard, ModelCheckpoint
Code: Alles auswählen
model = Sequential()
model.add(LSTM(128, input_shape=(train_x.shape[1:]), return_sequences=True))
model.add(Dropout(0.2)) # Dropout is a regularizer
model.add(BatchNormalization())
model.add(LSTM(128, return_sequences=True))
model.add(Dropout(0.1))
model.add(BatchNormalization())
model.add(LSTM(128))
model.add(Dropout(0.2))
model.add(BatchNormalization())
model.add(Dense(32, activation='tanh'))
model.add(Dropout(0.2))
if TargetingMode ==0:
model.add(Dense(3, activation='softmax'))
elif TargetingMode ==1:
model.add(Dense(7, activation='softmax'))
opt = tf.keras.optimizers.Adam(lr=0.001, decay=1e-6)
print("now compiling...")
# Compile model
model.compile(loss='sparse_categorical_crossentropy',optimizer=opt,metrics=['accuracy'])
tensorboard = TensorBoard(log_dir="logs\{}".format(NAME))
filepath = "RNN_Final-{epoch:02d}-{val_acc:.3f}" # unique file name that will include the epoch and the validation acc for that epoch
checkpoint = ModelCheckpoint("models\{}.model".format(filepath, monitor='val_acc', verbose=1, save_best_only=True, mode='max')) # saves only the best ones
print("now starting to optimize...")
# Train model
history = model.fit(train_x, train_y, batch_size=BATCH_SIZE, epochs=EPOCHS, validation_data=(validation_x, validation_y),
callbacks=[tensorboard,checkpoint],)
print("now evaluating the model...")
# Score model
score = model.evaluate(validation_x, validation_y, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
# Save model
model.save("models\{}".format(NAME+f"{score[1]}"))
Ich verusche es erstmal mit einem generator, der die liste aus einem file oder der liste batchweise importiert, zu einem np.array umwandelt und anschließend in fit_generator verwendet werden kann.
Achja hier noch beispielweise die struktur von listenelementen besagter liste:
x = [[[ 3.7360e-04 -5.5981e-04 -6.5374e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-9.3341e-05 9.3341e-05 2.8038e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-8.4019e-04 9.3281e-05 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 0.0000e+00 5.5838e-04 2.7966e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 4.6587e-04 1.0233e-03 1.8644e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.3037e-03 9.2983e-05 9.3162e-05 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[ 2.9430e-03 0.0000e+00 2.3003e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-6.4182e-04 6.4182e-04 9.1791e-05 ... 0.0000e+00 1.0000e+00
0.0000e+00]
[-4.5872e-04 -9.1600e-04 -1.4687e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[-1.3762e-03 7.3338e-04 -4.5943e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.7452e-03 4.5824e-04 1.8387e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-9.1672e-05 -9.1600e-04 -8.2588e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[ 3.9787e-03 4.4870e-04 3.3798e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 7.4804e-05 1.1215e-03 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.4210e-03 2.2399e-04 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 1.4901e-04 -2.9778e-04 -1.1187e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-1.4896e-03 -2.2340e-04 0.0000e+00 ... 1.0000e+00 0.0000e+00
0.0000e+00]
[ 1.1196e-03 -2.9802e-04 -9.7036e-04 ... 1.0000e+00 0.0000e+00
0.0000e+00]]
[[-8.9979e-04 -1.6050e-03 -7.7200e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-3.8600e-04 -1.2863e-04 -3.2187e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.5725e-04 -1.2863e-04 6.4373e-05 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 5.8222e-04 0.0000e+00 1.8167e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-6.4659e-04 -4.5276e-04 -5.1832e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-7.7677e-04 8.4114e-04 -5.1832e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[-2.8515e-04 -1.2112e-04 -1.0557e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-8.6975e-04 -6.4135e-05 4.2868e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.0700e-03 2.3232e-03 1.6356e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[-1.4067e-05 2.2774e-03 -1.9693e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 2.6646e-03 1.1282e-03 1.8930e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 6.2418e-04 -4.2009e-04 4.9162e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]] [[[-1.5986e-04 5.7411e-04 -6.0034e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 2.1420e-03 2.0409e-03 8.0109e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 2.8725e-03 6.2037e-04 2.3937e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[-1.5697e-03 -3.2196e-03 -3.6507e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.5749e-03 -2.7008e-03 -1.6909e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.8458e-03 -3.4313e-03 -3.1204e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[-4.6492e-04 -3.8719e-04 -4.6515e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.3258e-04 4.6492e-04 7.7546e-05 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-7.7546e-05 7.7426e-05 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 1.0920e-03 6.2323e-04 5.4598e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-3.1161e-04 -5.4502e-04 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-7.7903e-05 -4.6730e-04 -1.4811e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[ 1.6320e-04 -2.4462e-04 1.6332e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 0.0000e+00 6.5231e-04 2.4486e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 6.5279e-04 8.1480e-05 4.8971e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 8.1360e-05 1.7061e-03 5.6982e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.9522e-03 2.4343e-04 1.6270e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 6.4945e-04 -8.1122e-05 -3.8986e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
...
[[-2.3022e-03 -1.6870e-03 -3.0780e-04 ... 0.0000e+00 1.0000e+00
0.0000e+00]
[ 6.9237e-04 1.5366e-04 4.6158e-04 ... 0.0000e+00 1.0000e+00
0.0000e+00]
[-2.3055e-04 -6.9141e-04 -1.1539e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 3.8409e-04 5.3740e-04 2.3055e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 3.8409e-04 3.8385e-04 3.8409e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-7.6771e-05 -1.5342e-04 -1.6899e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[-2.0161e-03 -1.0338e-03 3.7026e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 2.9612e-04 -4.5085e-04 -9.2554e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 8.2111e-04 5.6171e-04 1.9855e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[-3.0065e-04 -5.3310e-04 -2.0695e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-1.4133e-03 -6.3133e-04 1.7881e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.1215e-03 8.4972e-04 6.2513e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[-8.3590e-04 -9.3269e-04 -8.2970e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.3901e-04 2.0390e-03 1.2045e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 7.3957e-04 -1.3411e-04 8.5211e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 5.0592e-04 -1.7846e-04 7.2241e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-4.0913e-04 7.0667e-04 2.3079e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 8.8549e-04 -2.2292e-05 -1.8609e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]]
Achja hier noch beispielweise die struktur von listenelementen besagter liste:
x = [[[ 3.7360e-04 -5.5981e-04 -6.5374e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-9.3341e-05 9.3341e-05 2.8038e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-8.4019e-04 9.3281e-05 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 0.0000e+00 5.5838e-04 2.7966e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 4.6587e-04 1.0233e-03 1.8644e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.3037e-03 9.2983e-05 9.3162e-05 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[ 2.9430e-03 0.0000e+00 2.3003e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-6.4182e-04 6.4182e-04 9.1791e-05 ... 0.0000e+00 1.0000e+00
0.0000e+00]
[-4.5872e-04 -9.1600e-04 -1.4687e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[-1.3762e-03 7.3338e-04 -4.5943e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.7452e-03 4.5824e-04 1.8387e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-9.1672e-05 -9.1600e-04 -8.2588e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[ 3.9787e-03 4.4870e-04 3.3798e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 7.4804e-05 1.1215e-03 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.4210e-03 2.2399e-04 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 1.4901e-04 -2.9778e-04 -1.1187e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-1.4896e-03 -2.2340e-04 0.0000e+00 ... 1.0000e+00 0.0000e+00
0.0000e+00]
[ 1.1196e-03 -2.9802e-04 -9.7036e-04 ... 1.0000e+00 0.0000e+00
0.0000e+00]]
[[-8.9979e-04 -1.6050e-03 -7.7200e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-3.8600e-04 -1.2863e-04 -3.2187e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.5725e-04 -1.2863e-04 6.4373e-05 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 5.8222e-04 0.0000e+00 1.8167e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-6.4659e-04 -4.5276e-04 -5.1832e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-7.7677e-04 8.4114e-04 -5.1832e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[-2.8515e-04 -1.2112e-04 -1.0557e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-8.6975e-04 -6.4135e-05 4.2868e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.0700e-03 2.3232e-03 1.6356e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[-1.4067e-05 2.2774e-03 -1.9693e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 2.6646e-03 1.1282e-03 1.8930e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 6.2418e-04 -4.2009e-04 4.9162e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]] [[[-1.5986e-04 5.7411e-04 -6.0034e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 2.1420e-03 2.0409e-03 8.0109e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 2.8725e-03 6.2037e-04 2.3937e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[-1.5697e-03 -3.2196e-03 -3.6507e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.5749e-03 -2.7008e-03 -1.6909e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.8458e-03 -3.4313e-03 -3.1204e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[-4.6492e-04 -3.8719e-04 -4.6515e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.3258e-04 4.6492e-04 7.7546e-05 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-7.7546e-05 7.7426e-05 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 1.0920e-03 6.2323e-04 5.4598e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-3.1161e-04 -5.4502e-04 0.0000e+00 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-7.7903e-05 -4.6730e-04 -1.4811e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[ 1.6320e-04 -2.4462e-04 1.6332e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 0.0000e+00 6.5231e-04 2.4486e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 6.5279e-04 8.1480e-05 4.8971e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 8.1360e-05 1.7061e-03 5.6982e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.9522e-03 2.4343e-04 1.6270e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 6.4945e-04 -8.1122e-05 -3.8986e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
...
[[-2.3022e-03 -1.6870e-03 -3.0780e-04 ... 0.0000e+00 1.0000e+00
0.0000e+00]
[ 6.9237e-04 1.5366e-04 4.6158e-04 ... 0.0000e+00 1.0000e+00
0.0000e+00]
[-2.3055e-04 -6.9141e-04 -1.1539e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 3.8409e-04 5.3740e-04 2.3055e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 3.8409e-04 3.8385e-04 3.8409e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-7.6771e-05 -1.5342e-04 -1.6899e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[-2.0161e-03 -1.0338e-03 3.7026e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 2.9612e-04 -4.5085e-04 -9.2554e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 8.2111e-04 5.6171e-04 1.9855e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[-3.0065e-04 -5.3310e-04 -2.0695e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-1.4133e-03 -6.3133e-04 1.7881e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 1.1215e-03 8.4972e-04 6.2513e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]
[[-8.3590e-04 -9.3269e-04 -8.2970e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-2.3901e-04 2.0390e-03 1.2045e-03 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 7.3957e-04 -1.3411e-04 8.5211e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
...
[ 5.0592e-04 -1.7846e-04 7.2241e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[-4.0913e-04 7.0667e-04 2.3079e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]
[ 8.8549e-04 -2.2292e-05 -1.8609e-04 ... 0.0000e+00 0.0000e+00
0.0000e+00]]]