Confusion Matrix для многозадачного обучения с использованием специального генератора данных - PullRequest
0 голосов
/ 09 апреля 2020

Я работаю над разработкой модели MTL. В модели есть две задачи: task1 и task2.

И я использовал собственный генератор данных, используя следующий код:

def get_data_generator(data, split ,batch_size=16):
    imagePath = ''
    df =''

    if split == 'train':
        imagePath = '../MTLData/train/'
        df = data[data.dir == 'train']
    elif split == 'test':
        imagePath = '../MTLData/test/'
        df = data[data.dir == 'test']
    elif split == 'vald':
        imagePath = '../MTLData/vald/'
        df = data[data.dir == 'vald']

    pfrID = len(data.PFRType.unique())
    ftID = len(data.FuelType.unique())
    images, pfrs,fts = [], [], []
    while True:
        for i in range(0,df.shape[0]):
            r = df.iloc[i]
            file, pfr, ft = r['Image'], r['PFRType'], r['FuelType']
            im = Image.open(imagePath+file)
            im = im.resize((224, 224))
            im = np.array(im) / 255.0
            images.append(im)
            pfrs.append(to_categorical(pfr, pfrID))
            fts.append(to_categorical(ft, ftID))
            if len(images) >= batch_size:
                yield np.array(images), [np.array(pfrs), np.array(fts)]
                images, pfrs, fts = [], [], []

И модель устанавливается с помощью:

H = model3.fit_generator(generator=get_data_generator(labels,'train',batch_size),
                steps_per_epoch=STEP_SIZE_TRAIN+1,
                validation_data=get_data_generator(labels,'vald',batch_size),
                validation_steps=STEP_SIZE_VALID+1,
                epochs=EPOCHS

)

Теперь я хочу создать матрицу путаницы для task1 (pfr) и task2 (ft) для всего набора данных.

Я застрял здесь, поскольку не использую поток из структуры каталогов, а данные слишком велики для хранения в памяти. Может кто-нибудь помочь?

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