fast ai-lesson 1 报错解决方法(正则表达式提取文件名)

在运行fast ai lesson 1的代码的时候,运行到的时候报错了

data = ImageDataBunch.from_name_re(path_img, fnames, pat, ds_tfms=get_transforms(),size=224)
data.normalize(imagenet_stats)

报错信息如下:

AttributeError: 'NoneType' object has no attribute 'group'

在之前展示的代码中文件路径为/拼起来的文件路径,pat = '/([^/]+)_d+.jpg$'看起来也没有什么问题,但是报错信息又说得很清楚没匹配到。查了好久终于发现问题了,首先str(fnames[0])

查看from_name_re函数的源代码的时候发现原理是:str(path),windows本来的分隔符是,会变成\,还可以看到一个方法名叫fn.as_posix,这个方法在生成路径的时候会自动添加/,所以为了修正这个错误可以:

  • r'/([^/]+)_d+.jpg$改为r'[/\]([^/\]+)_d+.jpg$'
原文地址:https://www.cnblogs.com/MartinLwx/p/10484076.html