微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为目录中的图像创建有用的标签功能?

如何解决如何为目录中的图像创建有用的标签功能?

我正在使用 fastai DataBlock 和 DataLoaders API 开发 Jupyter Notebook,为神经网络准备批次。 目前我所做的是:

'''

path= Path('TensorFlow\workspace\images\mini_alphabet')''' 

#created this path to the folder包含20张标记为A1、A2、A3等和20张标记为B、B2、B3等的图像

当我使用 .ls() 时,我可以以这种形式打开并查看输出

[路径('A1.jpg'),路径('A10.jpg'),路径('A11.jpg'),路径('A12.jpg'),路径('A13.jpg'),路径('A14.jpg'),Path('A15.jpg'),Path('A16.jpg'),Path('A17.jpg'),Path('A18.jpg')...]

我想做的是创建一个标签函数,它遍历 mini_alphabet 文件夹,检查图像名称是否以字母 A 或 B 开头,然后将该字母作为标签返回。 到目前为止,我已经编写了这个函数

def label_alphabet(fname):
    labels = os.listdir(fname)  # <this outputs a list ['A1.jpg','A2.jpg',...]
    for l in labels:
        if l[0].startswith('A'):
            return "A"
        else:
            return "B"

不幸的是,当我使用它时,它似乎将每个图像都标记为 A。我应该在这里做些什么不同的事情? 此外,如果我想应用更多的标签(范围从 A 到 G),我应该如何设置该代码以便它通过所有标签进行标记。我正在考虑通过字母列表迭代 '''for i''' 并返回与文件名匹配的标签

感谢您的帮助!

解决方法

试试 if l.split(".")[0].startwith("A") 代替 if l[0].startswith('A'):

如果你想要一个字母数组,你可以使用 list(string.ascii_uppercase)

还要在 for 和后面的代码之间放置一个制表符

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。