Как создать многомерный массив NumPy для нескольких классов в глубоком обучении?

#python #numpy #deep-learning #numpy-ndarray #image-classification

#python #numpy #глубокое обучение #numpy-ndarray #изображение-классификация

Вопрос:

Я следую примеру сиамской сети для распознавания лиц, и он использует только два класса, по 3 изображения на каждый класс (т. Е. Всего 6 изображений). Как я могу изменить следующий код, чтобы он считывался и помечался в 6 классах изображений, по 10 изображений на каждый класс (т. Е. Всего 60 изображений)?

 sub_dir_list = os.listdir( dir_path )
images = list()
labels = list()
for i in range( len( sub_dir_list ) ):
    label = i
    image_names = os.listdir( os.path.join(dir_path , sub_dir_list[i]) )
    for image_path in image_names:
        path = os.path.join(dir_path , sub_dir_list[i] , image_path )
        try :
            image = Image.open(path)
            resize_image = image.resize((dimen, dimen))
            array_ = list()
            for x in range(dimen):
                sub_array = list()
                for y in range(dimen):
                    sub_array.append(resize_image.load()[x, y])
                array_.append(sub_array)
            image_data = np.array(array_)
            image = np.array(np.reshape(image_data, (dimen, dimen, 3))) / 255
            images.append(image)
            labels.append(label)
        except:
            print( 'WARNING : File {} could not be processed.'.format( path ) )

images = np.array( images )

samples_1 = list()
samples_2 = list()
labels = list()
for i in range( 6 ) :
    for j in range( 6 ) :
        samples_1.append( images[i] )
        samples_2.append( images[j] )
        if i < 3 :
            if j < 3 :
                labels.append( 1 )
            else:
                labels.append( 0 )
        else :
            if j > 2 :
                labels.append( 1 )
            else:
                labels.append( 0 )

X1 = np.array( samples_1  )
X2 = np.array( samples_2 )
Y = np.array( labels )
  

Комментарии:

1. Вам нужно добавить больше папок в sub_dir_list (по одной для каждой метки) и иметь 10 изображений в каждой папке.

2. @Shaido-Восстановить Monica да, я добавил 6 отдельных папок, каждая из которых состоит из 10 изображений этого класса, в sub_dir_list в качестве вашего комментария. Что мне нужно знать, так это как мне следует изменить приведенный выше код в соответствии с моим изменением, которое содержит 6 классов вместо 2 классов в приведенном выше коде.