1

请帮我。

我有一个包含以下路径文件的列表:

[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 = 鹦鹉。

为了在机器学习中使用文件名进行分类,我尝试使用以下正则表达式:

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:没有这样的组

而且我不知道如何解决它。有人能帮我吗?

为了澄清起见,我正在尝试使用我硬盘上的一些文件从 fast.ai 课程中重现第 1 课。

4

1 回答 1

1

该方法正在寻找一个捕获组值,您需要在文件名模式周围设置一对未转义的括号。

此外,您似乎同时拥有jpgjpeg,因此您需要jpe?g,而不仅仅是jpg

利用

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

查看正则表达式演示

于 2019-03-20T00:06:40.410 回答