Model.fit в керасе с мульти-этикеточной классификацией - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь узнать, как реализовать свой собственный набор данных для модели, представленной здесь: resnet , которая является просто моделью реснета, написанной в керасе. В коде они пишут эту строку

(x_train, y_train), (x_test, y_test) = cifar10.load_data()

и затем использовать соответствующие данные для «Преобразования векторов классов в матрицы двоичных классов».

y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

и затем передайте эти значения в функцию подгонки для модели, которая была построена следующим образом:

model.fit(x_train, y_train,
          batch_size=batch_size,
          epochs=epochs,
          validation_data=(x_test, y_test),
          shuffle=True,
          callbacks=callbacks)

Я считаю, что могу создать x_train, выполнив что-то похожее (предполагается, что у меня есть массив путей к изображениям):

#pseudocode
x_train = nparray
for image in images:
    im = PIL.Image.open(image).asNumpy() 
    x_train.append(im)

Правильно ли это?

Что касается y_train, я не совсем понимаю, что передается в model.fit, это массив из одного горячо закодированного массива? Так что, если у меня было 3 изображения, содержащие; кошка и собака, собака, кошка соответственно будут y_train

[
 [1, 1, 0],#cat and dog
 [0, 1, 0],#dog
 [1, 0, 0]#cat
]

или я тоже в этом ошибаюсь?

1 Ответ

0 голосов
/ 06 июля 2019

Итак, model.fit() ожидает x_train в качестве признаков и y_train в качестве меток для конкретной задачи классификации.Я буду принимать во внимание классификация мультиклассовых изображений .

  • x_train: для классификации изображений этот аргумент будет иметь форму (num_images, width, height, num_channels ).Где num_images относится к числу изображений, присутствующих в обучающей партии.См. здесь .

  • y_train: метки с горячим кодированием.Требуемая форма: (num_images, num_classes ).

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

Надеюсь, это поможет.

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