Как распечатать образцы изображений (желательно с классом) после использования Keras ImageDataGenerator? - PullRequest
1 голос
/ 07 февраля 2020

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

train_batches = ImageDataGenerator(rescale=1/255, horizontal_flip=True, 
                rotation_range=5).flow_from_directory('train', target_size=(256, 256), classes=[
                'bike', 'car', 'motorcycle', 'other', 'truck', 'van'], batch_size=12)

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

def plots(ims, figsize=(12,6), rows=3, interp=False, titles=None):
    if type(ims[0]) is np.ndarray:
        ims = np.array(ims).astype(np.uint8)
        if (ims.shape[-1] != 3):
            ims = ims.transpose((0,2,3,1))
    f = plt.figure(figsize=figsize)
    cols = len(ims)//rows if len(ims) % 2 == 0 else len(ims)//rows + 1
    for i in range(len(ims)):
        sp = f.add_subplot(rows, cols, i+1)
        sp.axis('Off')
        if titles is not None:
            sp.set_title(titles[i], fontsize=16)
        plt.imshow(ims[i], interpolation=None if interp else 'none')

imgs, labels = next(train_batches)

plots(imgs, titles=labels)

, он отображает классы так, как должен, но только черные квадраты, а не картинки, подобные этой: black squares with classes Как я уже говорил ранее, я был бы очень рад просто иметь возможность печатать образцы фотографий, и это не обязательно должна быть целая партия. (Но это говорит о том, что если вы знаете, как исправить мой код, чтобы приведенный выше код на самом деле работал, я был бы признателен.)

РЕДАКТИРОВАТЬ: Изображенные на графике, как и следовало бы, если я удаляю все это в скобках для ImageDataGenerator. Сначала я попытался удалить только масштаб, но ничего не получилось. Так что теперь мой вопрос будет; Как мне создавать изображения со всеми этими отклонениями (перевернутые, масштабированные, повернутые), чтобы я мог тренировать модель solid (или, по крайней мере, пытаться быть)?

1 Ответ

0 голосов
/ 11 февраля 2020

Я нашел проблему. Проблема в астипе при настройке "ims". Я знал, что это было что-то с изменением масштаба и пробовал разные способы манипулирования ims [i] и vmin / vmax. Но при удалении astype я могу использовать параметры для ImageDataGenerator, как указано выше.

def plots(ims, figsize=(12,6), rows=3, interp=False, titles=None):
    if type(ims[0]) is np.ndarray:
        ims = np.array(ims)
        if (ims.shape[-1] != 3):
            ims = ims.transpose((0,2,3,1))
    f = plt.figure(figsize=figsize)
    cols = len(ims)//rows if len(ims) % 2 == 0 else len(ims)//rows + 1
    for i in range(len(ims)):
        sp = f.add_subplot(rows, cols, i+1)
        sp.axis('Off')
        if titles is not None:
            sp.set_title(titles[i], fontsize=16)
        plt.imshow(ims[i], interpolation=None if interp else 'none')

plots(imgs, titles=labels)

дает мне желаемый результат, подобный этому: enter image description here Особая благодарность @ Andrea

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