Я пытаюсь обучить нейронную сеть для классификации изображений. У меня проблемы с получением моих данных в правильном формате массива. Для подачи в сеть мой массив должен иметь размер (9068,184,184,1). Проблема в том, что если я проверю длину массива, он просто возвращает (9068,). Если я проверяю длину отдельного элемента в массиве, он возвращает (184,184,1). Как я могу сделать так, чтобы длина всего массива была четырехмерной (9068,184,184,1), чтобы моя нейронная сеть могла принимать это как ввод?
Ниже мой код. У меня есть (9068,2) фрейм данных с именами файлов. Я беру имя файла, считываю его в массив в виде информации о пикселях и сохраняю его в другом массиве.
path = '/home/vivek/Downloads/kaggle_ndsb2-master/data_segmenter_trainset/'
for ii in pairing_table['image']:
new_path = os.path.join(path,ii)
img = Image.open(new_path)
print type(ii)
for ii in range(0,len(image_table['image'])):
new_path = os.path.join(path,image_table['image'][ii])
img = Image.open(new_path)
img2 = np.array(img.getdata()).reshape(184, 184, -1)
#print(type(img))
image_table['image'][ii] = img2
img.close()
for ii in range(0,len(image_table['mask'])):
new_path = os.path.join(path,image_table['mask'][ii])
img = Image.open(new_path)
img2 = np.array(img.getdata()).reshape(184, 184, -1)
image_table['mask'][ii] = img2
img.close()
print(image_table['image'][0].shape) #this is returning (184,184,1)
print(image_table['image'].shape) #this is returning (9068,) should be (9068,184,184,1)
print(image_table['mask'][0].shape) #this is returning (184,184,1)
print(image_table['mask'].shape) #this is returning (9068,) should be (9068,184,184,1)