Нужен совет по подготовке пользовательского набора данных для PCA - PullRequest
0 голосов
/ 02 апреля 2020

Как уже упоминалось выше, я в настоящее время работаю над проектом по распознаванию лиц PCA, однако я натолкнулся на препятствие, о котором хотел бы получить совет.

Для начала я создаю свой собственный набор данных, поэтому я в настоящее время у меня есть 10 изображений из 20 человек, мне удалось извлечь функции изображения, используя следующий код:

        for img in os.listdir(path): #reiterate inside folder
            try:
                img_array = cv2.imread(os.path.join(path,img),cv2.IMREAD_GRAYSCALE)
                x_data.append(img_array)
                y_data.append(class_num)
            except Exception as e:
                pass

возвращение x_data [0] дает мне это

[[255 255 254 ... 255 254 255]
 [255 255 254 ... 254 255 255]
 [255 255 255 ... 255 253 255]
 ...
 [255 255 255 ...  71 215 254]
 [254 255 255 ...  60 209 255]
 [255 255 255 ...  55 210 255]]

однако, когда я применяю стандартное вычисление к этому x_data

X_std = StandardScaler().fit_transform(X_train)

, я возвращаюсь с этой ошибкой

ValueError: setting an array element with a sequence.

Я полагаю, что это либо из-за дополнительного [] на каждый элемент или из-за dtype = uint8, как я прочитал, но я понятия не имею, как поступить. Я пытался устранить лишние [], но безрезультатно.

Может кто-нибудь посоветовать мне этот вопрос?

Кроме того, если мой код можно улучшить, не могли бы вы также дать мне несколько указаний? от того, как? Цените свое время, чтобы помочь любым способом.

1 Ответ

0 голосов
/ 02 апреля 2020

Может быть, вам стоит попробовать что-то вроде:

X_std = [StandardScaler().fit_transform(data) for data in x_data]

Достигнет ли это того, чего вы хотите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...