Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 151
1

Почему keras не принимает данные?

17.01.2021, 17:23. Просмотров 1896. Ответов 16

Доброго времени суток, есть массив numpy с 300 изображениями, каждое изображение представляет собой одномерный массив из 3145728 элементов, и при попытке обучить модель на этих данных:
model.fit(data, features, batch_size=64, epochs=3)
Возникает следующая ошибка:
ValueError: Error when checking input: expected conv2d_input to have 4 dimensions, but got array with shape (300, 1)
Как мне переделать массив данных, чтобы keras его принял?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2021, 17:23
Ответы с готовыми решениями:

Keras тренировочные данные
Доброго времени суток, только начал изучать нейронны сети и взялся за библиотеку Keras. Суть...

Загрузить данные из Excel в dataset keras
Ребята, здравствуйте! Подскажите пожалуйста из-за чего часть данных из Excel могут определяться...

В каком формате (виде) должны быть обучающие данные для keras
Ребята, здравствуйте! Сразу прошу прощения за наверное элементарный вопрос, но в питоне не...

Как получить данные используя метод Post? В чем причина того, что Viewbag не принимает данные?
Первая форма отправляет запрос foreach p in Model <form method="post"> <td...

16
867 / 582 / 159
Регистрация: 07.11.2019
Сообщений: 1,342
17.01.2021, 18:24 2
Лучший ответ Сообщение было отмечено Andrei_ как решение

Решение

Цитата Сообщение от Andrei_ Посмотреть сообщение
каждое изображение представляет собой одномерный массив из 3145728 элементов
А вот в этом похоже и дело. Судя по ошибке, от вас ждут 4 мерный массив. Что-то типа wxhx3x300
0
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 151
18.01.2021, 02:00  [ТС] 3
Изображения приведены к одномерному массиву numpy.flatten по аналогии с задачами классификации, по-крайней мере я в таком виде подавал изображения на svm-классификатор, мне стоит опустить numpy.flatten в задачах свертки?
0
867 / 582 / 159
Регистрация: 07.11.2019
Сообщений: 1,342
18.01.2021, 04:12 4
Andrei_, как вы себе представляете себе свертку изображения на плоском массиве? Близкие пиксели должны по крайней мере остаться близко к друг-другу, это же не полносвязная сеть. см. пример https://www.tensorflow.org/tut... /cnn?hl=en
0
480 / 390 / 39
Регистрация: 17.07.2013
Сообщений: 2,023
18.01.2021, 09:26 5
Цитата Сообщение от u235 Посмотреть сообщение
как вы себе представляете себе свертку изображения на плоском массиве
Для подобных извращений в KERAS добавили:
Conv1D layer
0
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 151
18.01.2021, 09:54  [ТС] 6
Какая архитектура, на ваш взгляд, лучше: принимающая двумерное изображение или изображение в виде одномерного массива?

Добавлено через 3 минуты
Я пересобрал данные, но почему-то лезет та же ошибка:
ValueError: Error when checking input: expected conv2d_input to have 4 dimensions, but got array with shape (300, 1)
Для достоверности я вывел размер данных:

print(len(data))
print(len(data[0]))
print(len(data[0][0]))
print(len(data[0][0][0]))

И получил:

300
1024
1024
3

Теперь я окончательно не понимаю, что не нравится keras
0
480 / 390 / 39
Регистрация: 17.07.2013
Сообщений: 2,023
18.01.2021, 10:03 7
Цитата Сообщение от Andrei_ Посмотреть сообщение
что не нравится keras
Как только прочитаете книгу автора KERAS, так он сразу Вас полюбит.
Франсуа Шолле Глубокое обучение на Python СПб, Питер 2018г 400с
Там очень подробно, для школьников, даны ответы на все Ваши вопросы.
0
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 151
18.01.2021, 10:32  [ТС] 8
Спасибо, я заинтересован, но задача требует решения прямо сейчас
0
480 / 390 / 39
Регистрация: 17.07.2013
Сообщений: 2,023
18.01.2021, 10:38 9
Начните с:
https://pyprog.pro/array_manip... ctions_ch4
reshape(a, newshape[, order])
Изменяет форму массива без изменения его данных.
0
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 151
18.01.2021, 10:59  [ТС] 10
Да, но я не понимаю, почему len у меня показывает 4 измерения, а shape 2
0
480 / 390 / 39
Регистрация: 17.07.2013
Сообщений: 2,023
18.01.2021, 11:50 11
Цитата Сообщение от Andrei_ Посмотреть сообщение
я не понимаю, почему len у меня показывает 4 измерения, а shape 2
Ваша основная ошибка, это то, что Вы путаете понятия "не понимаю" и "не знаю".
Единственный способ избежать этого очень простой: это читать книжки
0
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 151
18.01.2021, 12:18  [ТС] 12
А, ну да, numpy.shape возвращает форму массива, где размерность элементов одинакова, забыл эту особенность
Хотя у меня должна одинаковая размерность быть, надо перепроверить
0
867 / 582 / 159
Регистрация: 07.11.2019
Сообщений: 1,342
18.01.2021, 12:32 13
Nick07, так это же не для картинок, а 1D сигналов типа временных рядов.
0
480 / 390 / 39
Регистрация: 17.07.2013
Сообщений: 2,023
18.01.2021, 13:14 14
Цитата Сообщение от u235 Посмотреть сообщение
это же не для картинок, а 1D сигналов типа временных рядов
В этой ситуации это изврат
0
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 151
18.01.2021, 15:09  [ТС] 15
Почему?
0
867 / 582 / 159
Регистрация: 07.11.2019
Сообщений: 1,342
18.01.2021, 18:12 16
Потому что у вас картинки, а не временные ряды! Для набора временных рядов порядок не важен, а для картинок порядок строк очень важен. Не обижайтесь, но по-моему, вы не совсем понимаете что такое свертка и как работает сверточная нейронная сеть...
0
0 / 0 / 0
Регистрация: 04.08.2020
Сообщений: 151
19.01.2021, 21:47  [ТС] 17
u235, Мой вопрос вы, можно сказать, решили, так как действительно указали на правильную ошибку, но возникла следующая проблема
Теперь сами тренировочные данные, имеющие 300 цветных изображений, принимаются, а вот выходные данные, имеющие 300 массивов с 70 точками, заданными двумя координатами-нет, дело из-за другой размерности выходного слоя:
ValueError: Error when checking target: expected conv2d_12 to have 4 dimensions, but got array with shape (300, 70, 2)
Погуглив, нашел следующий способ: после свертки, когда уже начинается голое машинная тренировка, приводить данные к размерности выходных, но мне кажется, что это бред и есть способы лучше
Может быть можно как-то отдельно задать размер выходных данных?

Добавлено через 4 минуты
u235, Мой вопрос вы, можно сказать, решили, так как действительно указали на правильную ошибку, но возникла следующая проблема
Теперь сами тренировочные данные, имеющие 300 цветных изображений, принимаются, а вот выходные данные, имеющие 300 массивов с 70 точками, заданными двумя координатами-нет, дело из-за другой размерности выходного слоя:
ValueError: Error when checking target: expected conv2d_12 to have 4 dimensions, but got array with shape (300, 70, 2)
Погуглив, нашел следующий способ: после свертки, когда уже начинается голое машинная тренировка, приводить данные к размерности выходных, но мне кажется, что это бред и есть способы лучше
Может быть можно как-то отдельно задать размер выходных данных?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2021, 21:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Почему вторую планку не принимает?
Народ подскажите позжалуста такая проблемма на старом компе стояло 2 планки оперативки одна на...

Почему переменная b не принимает значение?
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> double inline...

Почему JavaRush не принимает задание?
package com.javarush.test.level04.lesson06.task02; /* Максимум четырех чисел Ввести с...

Почему DatagramSocket принимает не всё ?
Здравствуйте. Есть сервер: public class Server { public static void main(String args) {...

Networkstream не принимает данные
Есть чат на C#, данные передаются по Networkstream. Принцип работы довольно простой: в отдельном...

SerialPort не принимает данные
Здравствуйте. В MSDN есть два примера передачи данных по СОМ-порту: с использованием...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.