Я сделал матрицу, объединив обучающие изображения
A = np.concatenate((folder[0], folder[1], folder[2], folder[3], folder[4], folder[5],folder[6], folder[7]))
Я определил матрицу, которая является меткой для изображений в матрице А. Каждая строка матрицы представляет тренировочные изображения,Чтобы обозначить все строки в матрице, я определил матрицу размером 3777 × 1. Значения в матрице: 1, 2, 3, 4, 5, 6, 7, 8, чтобы обозначить строки с 1 по 1719, 1720до 1920, с 1921 по 2036, с 2037 по 2103, с 2104 по 2568, с 2568 по 2868, с 2868 по 3044, с 3044 по 3778 соответственно. Код следующий: на самом деле моя папка содержит 8 файлов, и это метка, которую я сделал.
label = np.ones(3777,dtype = int)
label[0:1720] = 1
label[1720:1920] = 2
label[1920:2038] = 3
label[2038:2104] = 4
label[2104:2568] = 5
label[2568:2868] = 6
label[2868:3044] = 7
label[3044:3778] = 8
data,Label = shuffle(A,label,random_state=2)
Маркировка выполняется на основе этих данных 1719 × 65536, 200 × 65536, 117 ×65536, 67 × 65536, 465 × 65536, 299 × 65536, 176 × 65536, 734 × 65536.
Мой код выглядит следующим образом.
labelled_data = [data, Label]
X,Y = [labelled_data[0],labelled_data[1]]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.4,
random_state=4)
x_test, x_validation, y_test, y_validation=train_test_split(X_test, Y_test, test_size=0.5,
random_state=4)
import numpy as np
print(X_train.shape)
вывод:
(2266, 196608)
X_train = X_train.reshape((X_train.shape[0],256,256,3))
x_validation = x_validation.reshape((x_validation.shape[0],256,256,3))
x_test =x_test.reshape((x_test.shape[0],256,256,3))
X_train = X_train.astype('float32')
x_validation = x_validation.astype('float32')
x_test = x_test.astype('float32')
X_train = X_train/255
x_validation = x_validation/255
x_test =x_test/255
from keras.utils import np_utils
Y_train = np_utils.to_categorical(Y_train,8)
y_validation =np_utils.to_categorical(y_validation,8)
y_test =np_utils.to_categorical(y_test,8)
Я получаю ошибку, подобную этой
IndexError Traceback (most recent call last)
<ipython-input-33-af19e709e58b> in <module>
1 from keras.utils import np_utils
----> 2 Y_train = np_utils.to_categorical(Y_train,8)
3 y_validation =np_utils.to_categorical(y_validation,8)
4 y_test =np_utils.to_categorical(y_test,8)
~\Anaconda3\lib\site-packages\keras\utils\np_utils.py in to_categorical(y, num_classes, dtype)
50 n = y.shape[0]
51 categorical = np.zeros((n, num_classes), dtype=dtype)
---> 52 categorical[np.arange(n), y] = 1
53 output_shape = input_shape + (num_classes,)
54 categorical = np.reshape(categorical, output_shape)
IndexError: index 8 is out of bounds for axis 1 with size 8
, когда я даю 9 вместо 8, он работает нормально, но яЯ получаю очень низкую точность, а я не получаю confusion_matrix.