Как исправить "IndexError" на питоне?
Я новичок, который изучает машинное обучение и пытается обучать нейронные сети. но есть проблема, когда я запускаю свой код. ошибка " IndexError: индекс 114 вне предела для оси 0 с размером 93 ". как это может случиться Дэн, как это исправить? заранее спасибо, если вы можете мне помочь
это код, который я использовал neupy библиотеки
optimizer = algorithms.LevenbergMarquardt(
[
layers.Input(6),
layers.Sigmoid(12),
layers.Relu(6),
],
shuffle_data=True,
verbose=True,
)
print("Training...")
optimizer.train(X_train, X_test, y_train, y_test,epochs=100)
на входе 6 признаков glcm с 6 выходами меток. Я разделил данные на данные тестирования и обучения, используя train_test_split
, это данные, которые я разделил
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
print("Jumlah data latih : ", len(X_train))
print("Jumlah data uji : ", len(y_train))
print("Jumlah data latih : ", len(X_test))
print("Jumlah data uji : ", len(y_test))
Джамла Дейт Латих: 372 Джамла Дейт Юджи: 372 Джамла Дата Латих: 93 Джамла Дата Удзи: 93
И это сообщение об ошибке
IndexError Traceback (most recent call last)
<ipython-input-8-8e9b3836f4ce> in <module>()
16
17 print("Training...")
---> 18 optimizer.train(X_train, X_test, y_train, y_test,epochs=100)
19
20 p = optimizer.predict(testdata)
5 frames
/usr/local/lib/python3.6/dist-packages/neupy/algorithms/gd/base.py in train(self, X_train, y_train, X_test, y_test, *args, **kwargs)
299 X_train=X_train, y_train=y_train,
300 X_test=X_test, y_test=y_test,
--> 301 *args, **kwargs)
302
303 def one_training_update(self, X_train, y_train):
/usr/local/lib/python3.6/dist-packages/neupy/algorithms/base.py in train(self, X_train, y_train, X_test, y_test, epochs, batch_size)
264 )
265
--> 266 for X_batch, y_batch in iterator:
267 self.events.trigger('update_start')
268 update_start_time = time.time()
/usr/local/lib/python3.6/dist-packages/neupy/utils/iters.py in minibatches(inputs, batch_size, shuffle)
64 for index in range(n_batches):
65 batch_slice = slice(index * batch_size, (index + 1) * batch_size)
---> 66 yield apply_slices(inputs, indices[batch_slice])
67
68 elif n_batches != 1:
/usr/local/lib/python3.6/dist-packages/neupy/utils/iters.py in apply_slices(inputs, indices)
30
31 if isinstance(inputs, (list, tuple)):
---> 32 return [apply_slices(input_, indices) for input_ in inputs]
33
34 return inputs[indices]
/usr/local/lib/python3.6/dist-packages/neupy/utils/iters.py in <listcomp>(.0)
30
31 if isinstance(inputs, (list, tuple)):
---> 32 return [apply_slices(input_, indices) for input_ in inputs]
33
34 return inputs[indices]
/usr/local/lib/python3.6/dist-packages/neupy/utils/iters.py in apply_slices(inputs, indices)
32 return [apply_slices(input_, indices) for input_ in inputs]
33
---> 34 return inputs[indices]
35
36
IndexError: index 114 is out of bounds for axis 0 with size 93
1 ответ
Я не уверен на 100%, какую библиотеку вы используете. Но почему вы ставите тестирование на тренинге? Набор для тестирования предназначен для некоторой проверки или оценки функции. Попробуйте удалить x_test и y_test в функции обучения. т.е. optimizer.train(X_train, y_train,epochs=100)