这部分,应该是在 Dataset 和 Dataloader 这部分的一个插曲,是为了在 Dataset 中,使用 getitem 函数,所做的预处理,否则,不能一一提取每一张图片的 label。
一、理解
做图像分类的框架,需要把 label 和 img 分开存放;
对应的内容,img 的名称,对应的 label,一般存放在名为 img 同名的 txt文件中,内容为 label;
说的有点绕。
名称(img)= 名称(label)
内容(label)= img 的类型。
如:图片名为:1.jpg;图片上是一直猴子。
那么label的记录方式应该是:一个名为 1.txt的文件中,记录着“猴子”这个字符串。
二、代码
# !usr/bin/env python3
# -*- coding:utf-8 -*-
"""
author :24nemo
date :2021年07月12日
"""
import os
root_dir = "TuDui/src/dataset/train" # train: path from contend root
target_dir = "ants_image" # ants_image: copy file name
img_path = os.listdir(os.path.join(root_dir, target_dir))
label = target_dir.split('_')[0]
out_dir = "ants_label"
for i in img_path:
file_name = i.split('.jpg')[0]
with open(os.path.join(root_dir, target_dir, "{}.txt".format(file_name)), "w") as f:
f.write(label)
参考内容
该案例是 上手学习 PyTorch 时,B站 up 【我是土堆】的代码实战。
写给自己
文件名问:P7_rename_dataset.py