Pytorch制作自己的图片数据集

# -*- coding: utf-8 -*-
# @Author  : LPH
# @File    : MyDataset.py
# @Software: PyCharm
import os
import glob
from torchvision import transforms
from torch.utils.data import DataLoader, Dataset
from torch.utils.tensorboard import SummaryWriter
from PIL import Image


# 加载我的自定义图片数据集
class LoadMyDataset(Dataset):
    def __init__(self, root, img_file_list, transform=None):
        super(LoadMyDataset, self).__init__()
        self.root = root
        self.transform = transform
        # 存储图片的路径以及对应标签的元组列表
        self.samples = []
        for i, file_path in enumerate(img_file_list):
            self.samples.append((file_path, 0))

    def __len__(self):
        return len(self.samples)

    def __getitem__(self, index):
        # 对图像进行处理再返回
        file_path, target = self.samples[index]
        image = Image.open(file_path).convert('RGB')
        if self.transform is not None:
            image = self.transform(image)
        return image, target


def main():
    # 设置自定义图片的路径
    root = "./MyImg/HuGe"
    # 读取图像列表,使用glob库,匹配路径下的所有PNG图片 会返回一个数组里面包含所有的图像的路径
    image_list = glob.glob(os.path.join(root, "*.png"))
    # print(image_list)
    # 定义图像转换方式 先修改图像 之后再转化为Tensor类型
    trans = transforms.Compose([transforms.Resize((100, 100)), transforms.ToTensor()])
    # 实例化对象
    myDataset = LoadMyDataset(root=root, img_file_list=image_list, transform=trans)
    # 数据加载
    batch_size = 16
    dataloader = DataLoader(dataset=myDataset, batch_size=batch_size, shuffle=False)

    # 读取所有的图片 使用tensorboard进行展示
    writer = SummaryWriter("./logs")
    for step in range(len(dataloader)):
        for data in dataloader:
            imgs, targets = data
            writer.add_images(f"HuGe-{step}", imgs, step)

    writer.close()

if __name__ == '__main__':
    main()

tensorboard展示

tensorboard --logdir="logs" 

效果如下:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,训练自己的数据集可以按照以下步骤进行: 一、制作数据集 1. 打标签:对于每张图片,使用标注工具对目标物体进行标注,生成相应的标签文件。 2. 数据扩充:可以对数据集进行数据增强操作,如旋转、缩放、平移等,以增加数据的多样性。 3. 数据格式转换:将标签文件和图像文件转换为模型所需的特定格式,如YOLOv5所需的txt或csv格式。 二、输入网络训练 1. 修改配置文件:根据自己的数据集和训练需求,修改YOLOv5的配置文件,如调整网络结构、设置类别数等。 2. 修改训练文件:将制作好的数据集导入到训练文件中,并设置训练的超参数,如学习率、批大小等。 三、查看GPU训练进展:使用合适的GPU监控工具,如nvidia-smi,来查看训练过程中GPU的使用情况和训练进展。 四、优化训练进程 1. 分析原因:如果训练进程较慢,可以通过观察GPU和CPU的占用情况,分析瓶颈所在。 2. 解决问题:根据分析结果,采取相应的优化措施,如增加CPU的计算能力、优化数据读取速度、调整模型的参数配置等。 五、检测自己的模型:训练完成后,使用训练得到的模型对测试集进行检测,评估模型的性能。 以上是利用YOLOv5训练自己的数据集的一般步骤。如果您需要更详细的步骤或者有其他相关问题,请提出。 相关问题: 1. YOLOv5的配置文件有哪些需要修改的参数? . 除了YOLOv5,还有哪些深度学习模型可以用来进行目标检测? 3. 如何评估训练得到的模型在测试集上的性能?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值