pytorch-datase、dataloader、tensorboard和transform

本文介绍PyTorch中的数据处理方法,包括Dataset和DataLoader的使用,图片读取与转换,以及TensorBoard的日志记录和可视化。涵盖自定义数据集、常用transform操作及torchvision内置数据集的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

dataset数据

读取图片

TensorBoard使用

介绍

使用方法

常用函数-add_scalar()

常用函数-add_image()

numpy.array()对PIL图片转换

transform工具

​transform.totensor

opencv-numpy类型读取

opencv的下载

常见transform

compose函数

normalize函数

resize函数

torchvision数据集的使用

dataloader


dataset数据

在pytorch中如何读取数据主要有两类,一类是Dataset,另外一类是Dataloader,Dataset主要是提供一种方式去获取数据及其label,Dataloader为网络提供其不同的数据形式。

dataset:获取每一个数据和label

dataloader:提供不同的数据形式

下面为提供的数据集,然后分别打开jupyter和pycharm新建python项目

在jupyter键入如下,注意,在jupyter中使用help,可以得到排版很好的解释,在pycharm控制器中排版很混乱。

pycharm中加载数据集方法:新建工程-open in-exploar,然后将数据集复制在该工程下。

 pycharm中使用 Ctrl+P 可以看函数需要传入什么参数。

使用控制台可以显示相关的属性,可以进行调试

读取图片

from PIL import Image
img_path = "dataset/train/bees_image/16838648_415acd9e3f.jpg"

上述地址在相对路径中,数据集已经加载到项目,python控制台实时创建了相应的变量,并显示了类型。显示为字符串类型。

 如果要读取图片使用以下代码。

from PIL import Image
img_path = "dataset/train/bees_image/16838648_415acd9e3f.jpg"
img = Image.open(img_path)

 并创建了img的变量,在里面会显示img的属性,比如size等。如果要显示图片

img.size
Out[6]: (500, 450)
img.show()

首先我们要获取图片的地址,如果说我们想要通过索引的方式进行获取,可以通过 OS(operating system)(python中常用的系统的库)通过相应的索引来获取。如果想要获取所有的文件

dir_path = "dataset/train/bees_image"
import os
img_path_list = os.listdir(dir_path)

 

我们可以看到第一个数组对应的第一个图片等,如果访问第一个图片的话,就可以输入以下代码

img_path_list[0]
Out[11]: '1092977343_cb42b38d62.jpg'
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)

    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
    def __len__(self):
        return len(self.img_path)

 展示图片


root_dir = "dataset/train"
ants_label_dir = "bees_image"

ants_dataset = MyData(root_dir,ants_label_dir)

img,label = ants_dataset[0]    #展示第一张
img.show()

数据集的相加

root_dir = "dataset/train"
ants_label_dir = "ants_image"
bees_label_dir = "bees_image"
ants_dataset = MyData(root_dir,ants_label_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值