Keras Predict Generator делает дополнительное выполнение - PullRequest
0 голосов
/ 14 марта 2020

Keras Predict Generator выполняет дополнительное выполнение

Генерация данных

def data_gen_test(list_files,id_pz_map,train_images_dir,batch_size,gpu=False):
seq = get_seq()


maxIterCount = (len(list_files) // batch_size) +1
count=0
while True:

    for batch in chunker(list_files, batch_size):
        print('count',count)
        count=count+1
        for x in batch:
            print(x)
            break;         

        X = [_read3(train_images_dir,x, (128,128,3),id_pz_map.get(x) ,gpu) for x in batch ]
        print(' len(X) ',len(X))

        if count % 1000 == 0: # For Every 5 Batch Print Progress 
            print('  ValidationProgress = ', (count) , count/maxIterCount,' % of  lenFile=',len(list_files)  )
        #print('B4 Yeild isTraining',isTraining,count)
        #print(X[0][0])
        yield np.array(X)

Помощник для блока генерации данных

def chunker(seq, size):
    #if printProgress:
       # print('.')
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))
def get_seq():
    sometimes = lambda aug: iaa.Sometimes(0.5, aug)
    seq = iaa.Sequential(
        [
            # apply the following augmenters to most images
            iaa.Fliplr(0.35), # horizontally flip 35% of all images
            #iaa.Flipud(0.2) # vertically flip 20% of all images
        ],
        random_order=True
    )
    return seq

Исполнение

print(datetime.now())
batch_size=10
predGen=data_gen_test(bigMetaTest[0:35].Image.values,id_pz_map_test,test_images_dir, batch_size,gpu=False)
bigMetaTestOut= model.predict_generator(predGen,steps=4) #(len(bigMetaTest)//batch_size)+1
#bigMetaTestOut=bigMetaTestOut[0:len(len(bigMetaTest))]
print(datetime.now())

Вывод

2020-03-14 20: 31: 46.885238

count 0 ID_000000e27 len ( X) 10

count 1 ID_000357857 len (X) 10

count 2 ID_000bda502 len (X) 10

count 3 ID_000fd1a41 len (X) 5

# ТАК ЧТО ТАК ХОРОШО, НО НИЖЕ НЕ ОЖИДАЕТСЯ

count 4 ID_000000e27 2020-03-14

20: 31: 52.222856 len (X) 10

Цитата

Мы могли видеть, что 'count 4 ID_000000e27' и ID_000000e27 уже были замечены в итерации номер 1. Если я даю model.predict_generator (predGen, steps = 0) НЕТ Итерация, которая хороша , Но если я задаю Шаги = 1 .. вместо ДВУХ

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