pytorch dataset用来实现tensor转换

import numpy as np
from PIL import Image
import torch
from torchvision import transforms
from skimage.io import imread
a = np.ones([5,5,5])
b = a[1:1+1]#拆分
print(b.shape)

target1 = imread(r"D:\pku\new desktop\dataset-DIV2k\Set14\baboon.bmp")
target2 = Image.open(r"D:\pku\new desktop\dataset-DIV2k\Set14\baboon.bmp")
print('yes')

#在 dataset的getitem函数中,将对应的np.array转换为对应的tensor即可
trans = transforms.ToTensor()
target1_tensor = trans(target1)
target2_tensor = trans(target2)
#注意 这个地方 即使你读入的是uint8格式数据 他也会对应给你转换为float32,所以可以放心直接用
#如果不这样的话,数据需要先transpose,再除以255.0,最后转换为float32。

print(yes)

#上面即实现的源码 可以看出 对于一个numpy array图像 首先transpose,然后除以255.0并且float

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要处理视频数据,你可以使用 PyTorch 中的 `torchvision.datasets.VideoDataset` 数据集类。这个类可以用来加载视频数据集,并将其转换PyTorch 中的 `Tensor` 类型。你可以通过以下代码来加载视频数据集: ```python import torchvision.datasets as datasets # 定义数据集的路径 data_path = "/path/to/video/dataset" # 定义数据集的转换 transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), ]) # 加载数据集 video_dataset = datasets.VideoDataset( root=data_path, video_sampler=None, decode_audio=False, transform=transform, extensions=("avi",), ) ``` 在上面的代码中,你需要指定数据集的路径和数据集的扩展名。然后,你还需要定义一个数据集的转换,以便将视频转换为 `Tensor` 类型。最后,你可以使用 `VideoDataset` 类来加载数据集。 当你加载视频数据集之后,你可以使用 PyTorch 中的 `DataLoader` 类来创建一个数据加载器。数据加载器可以帮助你批量加载数据,以便进行模型训练。以下是创建数据加载器的示例代码: ```python from torch.utils.data import DataLoader # 定义批量大小 batch_size = 32 # 创建数据加载器 video_loader = DataLoader( video_dataset, batch_size=batch_size, shuffle=True, num_workers=4, ) ``` 在上面的代码中,你需要指定批量大小和数据加载器的工作线程数。然后,你可以使用 `DataLoader` 类来创建数据加载器,以便批量加载数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值