Ich habe Array x_train
und targets_train
. Ich möchte die Trainingsdaten mischen und in kleinere Batches aufteilen und die Batches als Trainingsdaten verwenden. Meine ursprünglichen Daten hat 1000 Zeilen und jedes Mal, wenn ich versuchen, 250 Zeilen von ihnen zu verwenden:IndexError: Index ist außerhalb der Grenzen für Achse 0 mit der Größe
x_train = np.memmap('/home/usr/train', dtype='float32', mode='r', shape=(1000, 1, 784))
# print(x_train)
targets_train = np.memmap('/home/usr/train_label', dtype='int32', mode='r', shape=(1000, 1))
train_idxs = [i for i in range(x_train.shape[0])]
np.random.shuffle(train_idxs)
num_batches_train = 4
def next_batch(start, train, labels, batch_size=250):
newstart = start + batch_size
if newstart > train.shape[0]:
newstart = 0
idxs = train_idxs[start:start + batch_size]
# print(idxs)
return train[idxs, :], labels[idxs, :], newstart
# x_train_lab = x_train[:200]
# # x_train = np.array(targets_train)
# targets_train_lab = targets_train[:200]
for i in range(num_batches_train):
x_train, targets_train, newstart = next_batch(i*batch_size, x_train, targets_train, batch_size=250)
Das Problem ist, wenn ich die Trainingsdaten mischen und versuchen, den Zugang zu Chargen ich Fehler sagen:
return train[idxs, :], labels[idxs, :], newstart
IndexError: index 250 is out of bounds for axis 0 with size 250
Gibt es jemanden, der weiß, was mache ich falsch?
Wenn die Größe 250 ist, ist der letzte Index wahrscheinlich 249, wie es von 0 beginnt 0 –
Ja, wenn ich nicht shuffle die ersten Batch-Indizes von 0 bis 249 aber die nächste wäre 250 bis 499 und so weiter .. Wenn ich die Indizes mische, könnte der erste Stapel die Indexnummer 619 haben! was ich bekomme Fehler "IndexError: Index 652 ist außerhalb der Grenzen für Achse 0 mit der Größe 250 " ... Ich meine das Problem ist Es versteht nicht, die Zeilen zu akzeptieren und die Indizes zurückgesetzt! – ga97rasl
Gibt es in den Variablen 'x_train' und' targets_train' Inhalte, die Sie an die Funktion übergeben? Ich würde drucken und sicherstellen, dass es tatsächlich 1000 gemischte Reihen gibt. – kmario23