Добавление изображений в виде массивов в большой массив с помощью Numpy - PullRequest
0 голосов
/ 30 ноября 2019

Я пытаюсь создать массив изображений, используя Numpy, чтобы передать его в нейронную сеть классификации изображений. Когда я помещаю изображение в массив, получается 3 измерения, но когда я использую np.append, чтобы добавить его в свой массив всех изображений, получается форма 631800003. Почему это происходит и как я могу это исправить? Или я должен загружать изображения другим способом?

Вот мой код для ячейки определения переменной:

normal = np.array([])
normalSet = np.array([])
badSet = np.array([])

Labels = np.array([])
Training_data = np.array([])
validationSet = []

process_data = True
ramCheck = 0

И загрузка изображения:

if process_data:

    for image in os.listdir('train/NORMAL/'):

        normal = imread('train/NORMAL/'+image)        
        normalSet = np.append(normal, normalSet)
        Labels = np.append(Labels, 0)

        validationSet.append(normal)

    for image in os.listdir('train/PNEUMONIA/'):

        bad = imread('train/PNEUMONIA/'+image)
        badSet = np.append(badSet, bad)
        Labels = np.append(Labels, 1)

        validationSet.append(bad)

    print("done!")

    Training_Data = np.append(badSet, normalSet)

    np.save("TrainingData.npy", Training_data)
    np.save("TrainingLabels.npy", Labels)

else:
    Training_data = np.load("TrainingData.npy")
    Labels = np.load("TrainingLabels.npy")

1 Ответ

0 голосов
/ 01 декабря 2019

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

normalSet = []
labels = []

for image in os.listdir('train/NORMAL/'):

    normal = imread('train/NORMAL/'+ image)

    normalSet.append(normal)
    validationSet.append(normal)
    labels.append(0)

normalSet = np.array(normalSet)
labels = np.array(labels)
...