Pytorch入门(一)初识Dataset

内置函数dir()和help()

dir()用法
help()用法

# 例子
help(torch)
help(torch.cuda)
dir(torch.cuda)
help(torch.cuda.is_available)

小知识

python文件     以文件所有行代码为块运行
python控制台      以任意行为块运行
jupyter notebook      以任意行为块运行
三者搭配使用

PyTorch加载数据初认识

图像处理工具包 PIL (Python Image Library)介绍

from PIL import Image
img_path="lenna.png" #图片相对路径
img=Image.open(img_path)
print(img.size)#(308, 311)
img.show()#显示图片

os测试1

import os
dir_path=r"dataset/train/ants" #图片相对路径
img_path_list=os.listdir(dir_path)
#help(os.listdir) # Return a list containing the names of the files in the directory.
print(type(img_path_list)) #<class 'list'>
print(img_path_list)# ['0013035.jpg', '1030023514_aad5c608f9.jpg',...,'VietnameseAntMimicSpider.jpg']

os测试2

import os
root_dir=r"dataset/train"
label_dir="ants"
#help(os.path.join) #join(path, *paths)   Join two (or more) paths.
path=os.path.join(root_dir,label_dir)# 'dataset/train\\ants'
path

Dataset初认识

help(Dataset)# 所有的Dataset子类都需要重写`__getitem__`方法
from torch.utils.data import Dataset
from PIL import Image
import os

class MyData(Dataset): #继承自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_paths=os.listdir(self.path)#图片名径列表
        
    def __getitem__(self,index): #方法重写
        img_name=self.img_paths[index]
        img_item_name=os.path.join(self.root_dir,self.label_dir,img_name)
        img=Image.open(img_item_name)
        label=self.label_dir
        return img,label
    
    def __len__(self): #方法重写
        return len(self.img_paths)

root_dir=r"dataset/train"
ants_label_dir="ants"
bees_label_dir="bees"
ants_dataset=MyData(root_dir,ants_label_dir)#实例化
bees_dataset=MyData(root_dir,bees_label_dir)

# img,label=ants_dataset[2] 
# img.show()

# img,label=bees_dataset[2]
# img.show()

train_dataset=ants_dataset+bees_dataset #数据集拼接

#数据集长度
print(len(train_dataset)) #245
print(len(ants_dataset))  #124
print(len(bees_dataset)) #121

python魔法方法__getitem__()

若类中实现了该方法,允许其对象像字典那样取值,即’ 对象[key] ',例如:

class Book:
	def __init__(self,name):
		self.name=name
	def __getitem__(self,key):
		if key=='name':
			return self.name
		else:
			return None

b=Book('pytorch入门')
print(b.name) #'pytorch入门'
print(b['name']) #'pytorch入门'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,你需要将心电信号的数据存储在某种形式的数据文件中,例如CSV或HDF5文件。数据文件应该包含每个样本的心电信号,以及与每个样本相关的标签。标签可以是别标签,例如正常和异常,或者是连续标签,例如心率和心电图形态特征。 然后,你需要创建一个PyTorch dataset,该将读取数据文件并将数据加载到PyTorch张量中。以下是一个基本的示例: ```python import torch from torch.utils.data import Dataset, DataLoader class EcgDataset(Dataset): def __init__(self, data_file): # 从数据文件中读取心电信号和标签 self.data, self.labels = self._load_data(data_file) # 将数据和标签转换为PyTorch张量 self.data = torch.tensor(self.data, dtype=torch.float32) self.labels = torch.tensor(self.labels, dtype=torch.int64) def __len__(self): return len(self.labels) def __getitem__(self, index): return self.data[index], self.labels[index] def _load_data(self, data_file): # 从数据文件中读取数据和标签 # ... return data, labels ``` 在上面的示例中,`EcgDataset`是一个继承自PyTorch `Dataset`的自定义。在`__init__`方法中,我们从数据文件中读取数据和标签,并将它们转换为PyTorch张量。`__len__`方法返回数据集的大小,`__getitem__`方法返回给定索引的数据和标签。 一旦你创建了`EcgDataset`,你可以使用PyTorch数据加载器(`DataLoader`)来加载数据,例如: ```python dataset = EcgDataset(data_file='data.csv') dataloader = DataLoader(dataset, batch_size=32, shuffle=True) ``` 这将创建一个数据加载器,它将从`EcgDataset`中加载数据,每批次包含32个样本,并且每个批次都随机洗牌。你可以使用数据加载器来迭代数据,例如: ```python for data, labels in dataloader: # 在这里训练模型或做其他事情 # ... ``` 希望这可以帮助你开始设置你的心电图数据集。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值