Ошибка при проверке ввода: ожидалось, что input_6 будет иметь форму (80, 80, 1), но получит массив с формой (80, 80, 2400) в сегментации изображения - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть набор данных медицинских изображений размером (80,80,2900), каждое изображение 80 * 80. Сначала я загрузил файл данных с данными следующим образом:

data = loadmat('cardiac-dig.mat') 
images_LV = np.array (data['images_LV'])
val_data_size = 500
valid_images = images_LV[:,:,:val_data_size]
train_images = images_LV[:,:,val_data_size:]
valid_masks = masks[:,:,:val_data_size]
train_masks = masks[:,:,val_data_size:]

, когда я попытался приспособить модель, используя это:

model.fit(train_images , train_masks, epochs=2, batch_size=8)

Я заканчиваю эту ошибку, которая говорит, что вход должен 4 измерения: Ошибка при проверке ввода: ожидалось, что input_6 будет иметь 4 измерения, но получил массив с формой (80, 80, 2400)

Я попытался изменить входные данные до 4 измерений, используя:

images_LV = np.reshape(images_LV, (-1, 80,80,2900))

но я получил другую ошибку: Ошибка при проверке ввода: ожидал, что input_6 будет иметь форму (80, 80, 1), но получил массив с формой (80, 80, 2400)

Я думаю, что вход должно быть как (2900,80,80,1)? если вам нужно больше информации, я могу поделиться.

1 Ответ

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

Я нашел решение. Я хотел опубликовать ответ на те, которые могут иметь ту же проблему:

в зависимости от формы моего набора данных (80,80,2900), мне нужно было изменить размер с 3 на 4. Кроме того, это было необходимо изменить форму набора данных следующим образом:

***images = np.swapaxes(images, 0, 2)
images = np.swapaxes(images, 1, 2)
images = np.reshape(images, (-1, 80,80,1))
print(images.shape)
\\(2900, 80, 80, 1)***

После вышеуказанных изменений я просто передаю данные в качестве ввода модели:

***train_images = images[val_data_size:,:,:,:]
model.fit(train_images , train_masks, epochs=5, batch_size=8)***
...