热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

np读取csv文件_[记录]Pytorch利用图片数据和csv标签文件建立Dataset

获取了后续需要训练的图片image和含有图片对应的标签csv文件之后,需要将这两者结合,建立后续训练的Dataset。importtorchimpor

获取了后续需要训练的图片image和含有图片对应的标签csv文件之后,需要将这两者结合,建立后续训练的Dataset。

ab105aa73bd61ef5e0c8a59cd732d68d.png

import torch
import pandas as pd
import numpy as np
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
from PIL import Image#建立自己的dataset
class CreateDatasetFromImages(Dataset):def __init__(self, csv_path, file_path, resize_height=256, resize_width=256):"""Args:csv_path (string): csv 文件路径img_path (string): 图像文件所在路径transform: transform 操作"""# 需要调整后的照片尺寸,我这里每张图片的大小尺寸不一致#self.resize_height = resize_heightself.resize_width = resize_width# csv_path = "C:UsersandroidcatDesktopcancer_classificationWarwick QU Dataset (Released 2016_07_08)Grade_train.csv"self.file_path = file_pathself.to_tensor = transforms.ToTensor() #将数据转换成tensor形式# 读取 csv 文件#利用pandas读取csv文件self.data_info = pd.read_csv(csv_path, header=None) #header=None是去掉表头部分# 文件第一列包含图像文件的名称self.image_arr = np.asarray(self.data_info.iloc[1:, 0]) #self.data_info.iloc[1:,0表示读取第一列,从第二行开始一直读取到最后一行# 第四列是图像的 labelself.label_arr = np.asarray(self.data_info.iloc[1:, 4])# 计算 lengthself.data_len = len(self.data_info.index) - 1def __getitem__(self, index):# 从 image_arr中得到索引对应的文件名single_image_name = self.image_arr[index]# 读取图像文件img_as_img = Image.open(self.file_path + single_image_name + ".bmp")#如果需要将RGB三通道的图片转换成灰度图片可参考下面两行# if img_as_img.mode != 'L':# img_as_img = img_as_img.convert('L')#设置好需要转换的变量,还可以包括一系列的nomarlize等等操作transform = transforms.Compose([transforms.Resize((224, 224)),transforms.ToTensor()])img_as_img = transform(img_as_img)# 得到图像的 labellabel = self.label_arr[index]return (img_as_img, label) #返回每一个index对应的图片数据和对应的labeldef __len__(self):return self.data_len

然后使用Jupyter Notebook加载训练集图片之后,可以得到:

MyTrainDataset = CreateDatasetFromImages("C:/Users/androidcat/Desktop/cancer_classification/Warwick QU Dataset (Released 2016_07_08)/Grade_train.csv","C:/Users/androidcat/Desktop/cancer_classification/Warwick QU Dataset (Released 2016_07_08)/train/")
train_loader = torch.utils.data.DataLoader(dataset=MyTrainDataset,batch_size=1, shuffle=False,)
MyTrainDataset.data_info

4f3c934c992f6040301d48ab2456e96f.png



推荐阅读
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • 使用TabActivity实现Android顶部选项卡功能
    本文介绍如何通过继承TabActivity来创建Android应用中的顶部选项卡。通过简单的步骤,您可以轻松地添加多个选项卡,并实现基本的界面切换功能。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 本文将详细介绍如何使用Java编程语言生成指定数量的不重复随机数,包括具体的实现方法和代码示例。适合初学者和有一定基础的开发者参考。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 本文通过一个具体的实例,介绍如何利用TensorFlow框架来计算神经网络模型在多分类任务中的Top-K准确率。代码中包含了随机种子设置、模拟预测结果生成、真实标签生成以及准确率计算等步骤。 ... [详细]
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
author-avatar
qaqa
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有