CNN (Conv2d) не может преобразовать массив размера 12402 в форму (318,39,39,1) - PullRequest
0 голосов
/ 01 мая 2020

У меня есть набор данных, на котором я тренирую модель CNN. Мой набор данных содержит 398 сэмплов и 330 объектов, я сократил число функций до 39 с помощью ExtraTreeclassifier(). Я создаю модель с Conv1d, и это отлично работает, но я хочу создать CNN с Conv2d.
Как я могу изменить свои x_train и x_test для Conv2D?

x_train = x_train.reshape(x_train.shape[0],x_train.shape[1],x_train.shape[1],1)
x_test = x_test.reshape(x_test.shape[0],x_test.shape[1],x_test.shape[1],1)

Результат:

ValueError: cannot reshape array of size 12402 into shape (318,39,39,1)

1 Ответ

1 голос
/ 01 мая 2020

Здесь количество входных узлов не равно выходному узлу.
Что это значит?
12402 - это ваш фактический узел изображения, и вы изменяете форму узла на (318*39*39*1)==483678, который не равен 12402

Изменение формы допускается только при равном количестве узлов. Вы должны сделать изменение формы таким образом, чтобы произведение всех dim равнялось 12402

Проверьте аналогичный ответ здесь .

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