Пример #1
0
def test_get_ImageDataGenerator(tmpdir):
    file_path = tmpdir.join('Image2.jpg')
    img = Image.new('RGB', (30, 30), color=(255, 0, 0))
    img.save(file_path.strpath)

    data_gen = utils.get_ImageDataGenerator(['Image2.jpg'], (32, 24, 3),
                                            file_path.dirname)
    assert (isinstance(data_gen, ImageDataGenerator))

    x = img_to_array(img, data_format=keras.backend.image_data_format())
    x = x.reshape((1, ) + x.shape)
    X_batch = data_gen.flow(x).next()
    assert X_batch.shape[0] == x.shape[0]
    assert X_batch.shape[1:] == x.shape[1:]
    assert (X_batch >= 0).all() and (X_batch <= 1).all()
Пример #2
0
    print(c.shape)
    return [f, c]


images_train = random.sample(all_image_names, int(len(all_image_names) * 0.9))
images_test = [i for i in all_image_names if i not in set(images_train)]


def couples_generator(images):
    for i in images:
        yield load_pair(i), labels[i]


def gen_func(images):
    return couples_generator(images)


train_couples_len = sum(1 for e in gen_func(images_train))
test_couples_len = sum(1 for e in gen_func(images_test))

data_gen = utils.get_ImageDataGenerator(all_images, input_shape)
train_iterator = utils.CouplesIterator(utils.make_infinite(gen_func, images_train), input_shape, data_gen, BATCH_SIZE)
test_iterator = utils.CouplesIterator(utils.make_infinite(gen_func, images_test), input_shape, data_gen, BATCH_SIZE)

model = network.create(input_shape, args.network)
network.compile(model, args.optimizer)

model.fit_generator(train_iterator, steps_per_epoch=train_couples_len / BATCH_SIZE, epochs=EPOCHS)
score = model.evaluate_generator(test_iterator, steps=test_couples_len / BATCH_SIZE)
print(score)