pytorch训练(一)——如何使用pytorch创建自己的数据集(含图像的分割处理-一个样本图片分为多个样本图片)

代码链接:https://github.com/duchp/python-all/tree/master/BreakHis

前言(博主的废话感悟)

经过研一上半学期的各种颓废,迷茫以及瞎学,博主终于在研一下半学期正式走入了研究的轨道中,那么像我们这种方向的研究生,入门研究第一件要做的事情就是复现论文~

论文首先是要读懂,然后get它使用的数据集(这个一般论文里面作者会提到的),下载下来之后呢,第一件事情就是读取它,并且根据自己使用的框架(博主这里用的pytorch)建立它所需要的数据集类型,pytorch的数据类型是Dataset,也就是torch.utils.data.Dataset结构,我们需要将下载好的数据集建立成这样的结构,才能进行后续的过程(比如分batch,搭建网络,预训练balabala的)

一、图片分割

这里博主读了一篇论文,并且get了它的数据集,但是文章中提到要将原本700X460大小的图片每张都分割成294张32X32的小图,并且这些小图的像素点是不重合的。那至于具体怎么分割,论文只字不提= =,所以本机智girl就算了一下,发现700/32为21余28,460/32为14余12,21x14正好294。嗯,那问题来了,多余的像素点我应该如何分配呢~这里博主本着试验的心态,将多余的像素点分配在了边缘

  • 11
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以的,下面是一个例子,使用Pytorch读取csv数据集:import pandas as pd import torch# 读取csv文件 csv_file = pd.read_csv('csv文件路径')# 转换成torch tensor csv_data = torch.from_numpy(csv_file.values)# 打印输出 print(csv_data.shape) print(csv_data) ### 回答2: 可以使用PyTorch提供的`Dataset`和`DataLoader`类来实现读取CSV数据集的功能。下面是一个样本代码实现: ```python import torch from torch.utils.data import Dataset, DataLoader # 创建自定义的Dataset类 class CustomDataset(Dataset): def __init__(self, csv_file): # 读取CSV文件并加载数据 self.data = self.load_data(csv_file) def __len__(self): # 返回数据集中样本的总数 return len(self.data) def __getitem__(self, idx): # 返回指定索引(idx)的样本数据 sample = self.data[idx] return sample def load_data(self, csv_file): # 实现自定义的数据加载逻辑,根据实际情况处理CSV文件的读取和数据处理 # 这里仅作示例,假设CSV文件每一行是逗号分隔的数字序列 data = [] with open(csv_file, 'r') as f: for line in f: # 假设CSV文件中每行数据去除首尾空格并用逗号分隔 line = line.strip() items = line.split(',') # 将数字字符串转换为浮点数 sample = [float(item) for item in items] data.append(sample) return data # 创建Dataset实例 dataset = CustomDataset('data.csv') # 创建DataLoader实例 dataloader = DataLoader(dataset, batch_size=32, shuffle=True) # 循环遍历数据集 for batch in dataloader: # 在此处对每个批次的数据进行自定义的处理训练操作 print(batch) ``` 以上代码创建了一个自定义的`CustomDataset`类用于读取CSV文件中的数据,并使用`DataLoader`类来加载并生成数据批次。可以根据实际情况修改`CustomDataset`类中的`load_data`方法来处理CSV文件的读取和数据处理逻辑。在上述代码中,每一个CSV文件即代表一个样本。 ### 回答3: 可以通过使用pandas库来实现PyTorch读取CSV数据集。下面是一个示例代码: ```python import pandas as pd import torch from torch.utils.data import Dataset, DataLoader class CustomDataset(Dataset): def __init__(self, csv_file): self.data = pd.read_csv(csv_file) def __len__(self): return len(self.data) def __getitem__(self, idx): sample = self.data.iloc[idx].values return torch.tensor(sample, dtype=torch.float) # 使用示例 dataset = CustomDataset('sample.csv') dataloader = DataLoader(dataset, batch_size=32, shuffle=True) for batch in dataloader: # 在这里执行你的模型训练代码 pass ``` 在这个例子中,`CustomDataset` 类用于加载CSV文件,并在 `__getitem__` 方法中以张量形式返回每个样本。然后,可以使用 `torch.utils.data.DataLoader` 类来创建一个数据加载器,用于按照指定的批量大小和随机洗牌方式加载数据集。在训练循环中,可以通过迭代 `dataloader` 来获取每个批次的数据,并将其输入到模型中进行训练
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值