Python с регулярным выражением - PullRequest
1 голос
/ 20 марта 2019

, пожалуйста, помогите мне.

У меня есть список с файлами путей, как показано ниже:

[PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/Papagaio_verdadeiro.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/papagaio_amarelo.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/zoom_RACAO_ALIMENTO_NUTROPICA_PAPAGAIO_AVES_PASSAROS1.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/papagaio_ok.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/alx_papagaio_20070327_01_original.jpeg')]

Этот список был создан с использованием get_image_files.

Это списокизображений попугаев.Здесь, в Бразилии, papagaio = parrot.

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

pat = r'.[^\/.]+.jpg$'

Однако после использования его в ImageDataBunch...

data_papagaio = ImageDataBunch.from_name_re(papagaio_path, papagaio_files, pat, ds_tfms=get_transforms(), size=224, bs=bs
                                  ).normalize(imagenet_stats)

В ответ я получил следующее сообщение об ошибке:

IndexError: нет такой группы

И я не знаю, какрешить это.Кто-нибудь может мне помочь?

Просто для пояснения, я пытаюсь воспроизвести урок 1 из курса fast.ai, используя некоторые файлы на моем жестком диске.

1 Ответ

1 голос
/ 20 марта 2019

Метод ищет значение группы захвата, вам нужно установить пару неэкранированных скобок вокруг шаблона имени файла.

Кроме того, кажется, у вас есть и jpg, и jpeg, поэтому вам нужно jpe?g, а не просто jpg.

Использование

pat = r'([^/.]+)\.jpe?g$'

См. Демонстрационную версию regex

...