当前位置: 首页 > article >正文

跟着小土堆学习pytorch(一)——Dataset

文章目录

  • 一、前言
  • 二、dataset
  • 三、代码展示

一、前言

pytorch也是鸽了很久了,确定了下,还是用小土堆的教程。

kaggle获取数据集
在这里插入图片描述

二、dataset

dateset:数据集——提供一种方式去获取数据及其标签
如何获取数据及其标签以及总共多少个数据
dataloder:数据装载器——为后面的网络提供不同的数据形式
关于dataset也是重写类

三、代码展示

from torch.utils.data import Dataset
from PIL import Image
import os

class MyData(Dataset):
    def __init__(self, root_dir, label_dir):
        self.root_dir = root_dir
        self.label_dir = label_dir
        self.path = os.path.join(self.root_dir,self.label_dir)
        self.img_path = os.listdir(self.path)


    '''
    root_dir 根目录
    label_dir 路径
    os.path.join是为了把这两个路径加起来,用了这个函数后就不会出错了
    os.listdir这个是吧路径下的一系列文件名变成列表
    '''

    def __getitem__(self, idx):
        img_name = self.img_path[idx]
        img_item_path = os.path.join(self.root_dir,self.label_dir,img_name)
        img = Image.open(img_item_path)
        label = self.label_dir
        return img,label
    # 给getitem一个索引,就会返回img和label

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

root_dir = "dataset/train"
ants_label_dir = "ants"
bees_label_dir = "bees"
bees_dataset = MyData(root_dir,bees_label_dir)
ants_dataset = MyData(root_dir,ants_label_dir)

train_dataset = ants_dataset + bees_dataset
# 两个数据集的集合


# img_path = "D:\\pycharm_project\\try3\\dataset\\train\\ants\\0013035.jpg"
#
# image = cv2.imread(img_path)
#
# if image is not None:
#     # 如果成功读取,显示图片
#     cv2.imshow('Image', image)
#     cv2.waitKey(0)  # 等待按键
#     cv2.destroyAllWindows()  # 关闭所有窗口
# else:
#     print("Error: 图片读取失败。请检查图片路径。")

http://www.kler.cn/a/349545.html

相关文章:

  • STM32CubeMX6.13.0打开后不显示界面,但是任务管理器显示该程序正在运行
  • 1.27刷题记录
  • 记录一次,PyQT的报错,多线程Udp失效,使用工具如netstat来检查端口使用情况。
  • 【C++高并发服务器WebServer】-9:多线程开发
  • 赛博算卦之周易六十四卦JAVA实现:六幺算尽天下事,梅花化解天下苦。
  • 灰色预测模型
  • 基于Verilog的简单调制解调器(MODEM)设计
  • 论文 期刊论文
  • RHCE第一天
  • 大厂面试真题-说一下推和拉的模式以及常见的使用
  • python画图|在三维空间的不同平面上分别绘制不同类型二维图
  • Java面向对象六大设计原则总结1
  • YOLOv11改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失
  • 阿里云+frp内网穿透工作站远程开机
  • git的提取和拉取有啥区别
  • 配置环境windows-IIS默认拒绝put,delete的解决方案
  • MySQL-约束Constraint详解
  • @SneakyThrows:简化Java异常处理的利器
  • 【Linux】解锁线程基本概念和线程控制,步入多线程学习的大门
  • vue+element的confirm提示消息文字变色和换行
  • 《TH-OCR:强大的光学字符识别技术》
  • Ubuntu-24.10无法安装Sunlogin-15.2的解决方案
  • Vue获取url上的参数
  • Javascript 使用 Jarvis 算法或包装的凸包(Convex Hull using Jarvis’ Algorithm or Wrapping)
  • Unity3D 同步怪物实体到客户端详解
  • Webpack 完整指南