datasets数据读取器
#切分数据集
img_dir = train_parameters['img_dir']
file_name = train_parameters['file_name']
df = pd.read_csv(file_name)
df = df.sample(frac=1)
train_list = []
val_list = []
for i in range(len(df)):
if (i <= len(df)*0.8):
dirlist = img_dir + '/' + df.iloc[i][0] + '.jpg'
label = df.iloc[i][1]
datainfo = [dirlist, label]
train_list.append(datainfo)
else:
dirlist = img_dir + '/' + df.iloc[i][0] + '.jpg'
label = df.iloc[i][1]
datainfo = [dirlist, label]
val_list.append(datainfo)
# print(len(train_list))
# print(train_list[1][1])
定义数据集
'''
继承paddle.io.Dataset类
'''
IMAGE_SIZE = [3,224,224]
class Datasets(Dataset):
def init(self, data, mode='train'):
'''
步骤二:实现构造函数,定义数据读取,划分训练和测试、验证数据集
'''
super(Datasets, self).__init__()
self.data = data
self.mode = mode
if self.mode == 'train':
self.transforms = T.Compose([
# T.RandomResizedCrop(IMAGE_SIZE),
# T.RandomHorizontalFlip(0.5),
# T.ToTensor(),
# T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
#对输入图像进行裁剪,保持图片中心点不变。transform = CenterCrop(224)。
T.CenterCrop(224),
#随机调整图像的亮度,对比度,饱和度和色调。 transform = ColorJitter(0.4, 0.4, 0.4, 0.4)
T.ColorJitter(0.4, 0.4, 0.4, 0.4),
#依据degrees参数指定的角度范围,按照均匀分布随机产生一个角度对图像进行旋转。
T.RandomRotation(60),
#将形状为 (H x W x C)的输入数据 PIL.Image 或 numpy.ndarray 转换为 (C x H x W)。
T.ToTensor(),
#图像归一化处理,支持两种方式: 1. 用统一的均值和标准差值对图像的每个通道进行归一化处理; 2. 对每个通道指定不同的均值和标准差值进行归一化处理。
T.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225],)
])
elif self.mode == 'valid':
self.transforms = T.Compose([
# T.Resize(IMAGE_SIZE[0]),
# T.RandomCrop(IMAGE_SIZE),
# T.ToTensor(),
# T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
#对输入图像进行裁剪,保持图片中心点不变。transform = CenterCrop(224)。
T.CenterCrop(224),
#随机调整图像的亮度,对比度,饱和度和色调。 transform = ColorJitter(0.4, 0.4, 0.4, 0.4)
T.ColorJitter(0.4, 0.5, 0.6, 0.7),
#依据degrees参数指定的角度范围,按照均匀分布随机产生一个角度对图像进行旋转。
T.RandomRotation(60),
#将形状为 (H x W x C)的输入数据 PIL.Image 或 numpy.ndarray 转换为 (C x H x W)。
T.ToTensor(),
#图像归一化处理,支持两种方式: 1. 用统一的均值和标准差值对图像的每个通道进行归一化处理; 2. 对每个通道指定不同的均值和标准差值进行归一化处理。
T.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225],)
])
def __getitem__(self, index):
'''
实现getitem方法,定义指定index时如何获取数据,并返回单条数(训练数据,对应的标签)
'''
image = Image.open(self.data[index][0])
if image.mode != 'RGB':
image = image.convert('RGB')
data = self.transforms(image)
label = np.array([self.data[index][1]-1]).astype('int64')
return data, label
def __len__(self):
return len(self.data)
`
datasets数据读取器的更多相关文章
- Extjs的数据读取器store和后台返回类型简单解析
工作中用到了Extjs,从后台获取数据的时候,用到了extjs自己的Ext.data.store方法,然后封装了ExtGridReturn方法, 目的:前台用到Ext.data.store读取从后台传 ...
- [原创]SSIS-WMI 数据读取器任务:监控物理磁盘空间
背景: 随着时间的推移,我们的DW会越来越大,也就意味着磁盘空间会越来越小,那如果哪一天留意不当,就会造成磁盘空间的不足而导致ETL失败,最终影响我们的系统的数据正确性和使用,更严重的有可 ...
- 数据读取器对象SqlDataReader与数据适配器对象SqlDataAdapter的使用
一.数据读取器对象SqlDataReader的使用 如何执行有查询结果集的select语句. 1.SqlDataReader对象的作用:当包含select语句的SqlCommad对象 ...
- c#中使用数据读取器读取查询结果
今天有时间了. 在看<c#数据库入门经典> ,总结数据读取器查询结果. 针对单个结果集使用读取器,有3中方法: String connString =..; String sql =@&q ...
- 如何在ADO中使用数据读取器(DataReader)读取数据
DbDataReader类型(实现IDataReader接口)是从数据源获取信息最简单也最快速的方法. 数据读取器是只读向前的效据流.井且一次返回一条记录.因此.只有当你向数据源提交 Select 查 ...
- 调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题
在运用Entity Framework调用存储过程的时候,遇到"调用EF的存储过程报"调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题 ...
- 【原创】SSIS-WMI 数据读取器任务:监控物理磁盘空间
1.背景 随着时间的推移,我们的DW会越来越大,也就意味着磁盘空间会越来越小,那如果哪一天留意不当,就会造成磁盘空间的不足而导致ETL失败,最终影响我们的系统的数据正确性和使用,更严重的有可能导致物理 ...
- 怎样在C#中从数据库中读取数据(数据读取器)
实现在C#中通过语句,查询数据库中的数据 SqlConnection con = null; //创建SqlConnection 的对象 try //try里面放可能出现错误的代码 ...
- 数据库学习任务四:数据读取器对象SqlDataReader、数据适配器对象SqlDataAdapter、数据集对象DataSet
数据库应用程序的开发流程一般主要分为以下几个步骤: 创建数据库 使用Connection对象连接数据库 使用Command对象对数据源执行SQL命令并返回数据 使用DataReader和DataSet ...
随机推荐
- mysql 完整备份和恢复
mysql 完整备份和恢复 一.MySQL完整备份操作 1.直接打包数据库文件夹 创建数据库auth: MariaDB [(none)]> create database auth;Quer ...
- 《shader入门精要》13.2再谈运动模糊中片元着色器的世界坐标的计算
具体在书p275页 这里为啥需要除D.w呢. 首先我们得到的NDC的坐标是已经归一化的,但是CurrenViewProjectionMatrix的作用,是把世界空间转化为尚未归一化的裁剪空间. 这里看 ...
- python 矩阵顺时针旋转90度
# 4*4矩阵旋转90度 def matrix_transposition(data): for index,row in enumerate(data): for col in range(inde ...
- 简悦+Logseq 搭建本地化个人知识库
最近在少数派上看到了 简悦 +Logseq 个人知识库搭建 | 从零开始完全指南 - 少数派, 一时间感觉打开了新世界,其实我很早就买了简悦 2.0,但由于一直没有很好的使用场景,外加配置实在过于复杂 ...
- ZYNQ 启动问题 :FSBL
0.ZYNQ外部启动条件 1. 电源要求: 在阶段0 BootROM时,安全模式下PS与PL都是必须上电的:非安全模式PS需要上电,如图: 在阶段1 FSBL时,PS与PL都是必须上电的,因为PL将在 ...
- Docker容器入门实践
Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 ...
- 最新出炉的Java面试题(2022亲身经历)
面试题清单 个人近来面试了不少的公司的,该挂的挂,该应付通过的应付通过,目前对面试题部分做一个系统的总结.最起码要保证被问过的问题第二次被问到的时候是可以回答并且理解的.算是一个被动输入学习的过程. ...
- 第九届蓝桥杯 C组 Java 等腰三角形
目录 题目 解答 题目 题目描述 本题目要求你在控制台输出一个由数字组成的等腰三角形. 具体的步骤是: 1. 先用1,2,3,...的自然数拼一个足够长的串 2. 用这个串填充三角形的三条边.从上方顶 ...
- SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(转载)
SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本) 转载请标明出处:http://blog.csdn.net/forezp/article/details ...
- 什么是 ThreadLocal 变量?
ThreadLocal 是 Java 里一种特殊的变量.每个线程都有一个 ThreadLocal 就是每 个线程都拥有了自己独立的一个变量,竞争条件被彻底消除了.它是为创建代价 高昂的对象获取线程安全 ...