在运行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$'