import random
import numpy as np
import pandas as pd
import cv2
def date_loader(image_dir, file_name, batch_size=1, mode='train'):
train_dir_list = []
train_label = []
test_dir_list = []
test_label = []
val_dir_list = []
val_label = []
df = pd.read_csv(file_name) # 生成训练和测试数据集 0.8 /0.2
df = df.sample(frac=1)
for i in range(len(df)):
if i <= (len(df)*0.8-1):
dir = image_dir+ '/' + df.iloc[i][0] + '.jpg'
train_dir_list.append(dir)
train_label.append(int(df.iloc[i][1]-1))
else:
dir = image_dir+ '/' + df.iloc[i][0] + '.jpg'
test_dir_list.append(dir)
test_label.append(int(df.iloc[i][1]-1)) # 生成随机验证集,比列0.2
df1 = df.sample(frac=0.2)
for i in range(len(df1)):
dir = image_dir+ '/' + df1.iloc[i][0] + '.jpg'
val_dir_list.append(dir)
val_label.append(int(df.iloc[i][1]-1)) def reader():
batch_img = []
batch_label = []
if mode == 'train':
count = 0
for i in range(len(train_dir_list)):
img = cv2.imread(train_dir_list[i])
img = cv2.resize(img, (224,224), interpolation=cv2.INTER_CUBIC)/255
img = np.transpose(img, (2,0,1))
batch_img.append(img)
batch_label.append(train_label[i])
count +=1
if (count %batch_size==0):
# print(len(train_label))
yield np.array(batch_img).astype('float32'), np.asarray(batch_label).astype('int64').reshape(batch_size,1)
batch_img = []
batch_label = []
elif mode == 'test':
count = 0
for i in range(len(test_dir_list)):
img = cv2.imread(test_dir_list[i])
img = cv2.resize(img, (224,224), interpolation=cv2.INTER_CUBIC)/255
img = np.transpose(img, (2,0,1))
batch_img.append(img)
batch_label.append(test_label[i])
count +=1
if (count %batch_size==0):
# print(len(test_label))
yield np.array(batch_img).astype('float32'), np.asarray(batch_label).astype('int64').reshape(batch_size,1)
batch_img = []
batch_label = []
elif mode == 'val':
count = 0
for i in range(len(val_dir_list)):
img = cv2.imread(val_dir_list[i])
img = cv2.resize(img, (224,224), interpolation=cv2.INTER_CUBIC)/255
img = np.transpose(img, (2,0,1))
batch_img.append(img)
batch_label.append(val_label[i])
count +=1
if (count %batch_size==0):
# print(len(val_dir_list))
yield np.array(batch_img).astype('float32'), np.asarray(batch_label).astype('int64').reshape(batch_size,1)
batch_img = []
batch_label = []
return reader a = date_loader('image2_100','a_100_drop_p.csv',mode='test')
for n , data in enumerate(a()):
images, label = data
# print(label)
break

train_reader = paddle.batch(date_loader('image2_100','a_100_drop_p.csv',mode='train'), batch_size=10)

test_reader = paddle.batch(date_loader('image2_100','a_100_drop_p.csv',mode='test'), batch_size=10)

data_loader读取器的更多相关文章

  1. Laravel 5.1 文档攻略 —— Eloquent: 读取器和修饰器

    date_range 8月前 tag_faces Woody remove_red_eye 1483 chat0 简介 这一章其实很简单,Model的属性不是和数据表的字段一一对应吗? 那么在存储和呈 ...

  2. Extjs的数据读取器store和后台返回类型简单解析

    工作中用到了Extjs,从后台获取数据的时候,用到了extjs自己的Ext.data.store方法,然后封装了ExtGridReturn方法, 目的:前台用到Ext.data.store读取从后台传 ...

  3. [原创]SSIS-WMI 数据读取器任务:监控物理磁盘空间

    背景:       随着时间的推移,我们的DW会越来越大,也就意味着磁盘空间会越来越小,那如果哪一天留意不当,就会造成磁盘空间的不足而导致ETL失败,最终影响我们的系统的数据正确性和使用,更严重的有可 ...

  4. 数据读取器对象SqlDataReader与数据适配器对象SqlDataAdapter的使用

        一.数据读取器对象SqlDataReader的使用      如何执行有查询结果集的select语句. 1.SqlDataReader对象的作用:当包含select语句的SqlCommad对象 ...

  5. c#中使用数据读取器读取查询结果

    今天有时间了. 在看<c#数据库入门经典> ,总结数据读取器查询结果. 针对单个结果集使用读取器,有3中方法: String connString =..; String sql =@&q ...

  6. 如何在ADO中使用数据读取器(DataReader)读取数据

    DbDataReader类型(实现IDataReader接口)是从数据源获取信息最简单也最快速的方法. 数据读取器是只读向前的效据流.井且一次返回一条记录.因此.只有当你向数据源提交 Select 查 ...

  7. tp读取器和写入器

    一.读取器 控制器调用如下: //以ID的方式查询数据$user=User::get(3);//查询ID为3的单条数据echo $user->username;//以对象的方式显示对应的字段值 ...

  8. 调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题

    在运用Entity Framework调用存储过程的时候,遇到"调用EF的存储过程报"调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题 ...

  9. Replication--数据库镜像阻塞复制日志读取器的解决的办法

    问题描述:在同一数据库上使用镜像和复制,为保证镜像切换后,复制还能继续,因此当镜像断开或暂停时,复制日志读取器会被阻塞直到日志被同步到镜像从服务器端(无论异步还是同步).日志状态显示:复制的事务正等待 ...

随机推荐

  1. 还不会用springboot写接口?快看这里,手把手操作,一发入魂~

    1.springboot简介 Spring Boot 可以轻松创建可以"直接运行"的独立的.生产级的基于 Spring 的应用程序. 特征 创建独立的 Spring 应用程序 直接 ...

  2. 基于selenium实现河海大学自动健康打卡

    0.每日健康打卡有点烦 1.所用方法:selenium:需要下载响应浏览器的webdriver 2.注意事项,我感觉唯一要注意的就是页面跳转以后应该怎么操作了(那个时候困扰了我好几天) 3.相应代码: ...

  3. SpringCloudAlibaba 微服务讲解(一)微服务介绍

    微服务介绍 1.1 系统架构的演变 随若互联网的发展,网站应用的规模也在不断的扩大,逬而导致系统架构也在不断的进行变化.从互联 网早起到现在,系统架构大体经历了下面几个过程:单体应用架构一蟻直应用架构 ...

  4. Java 实现汇总排序

    排序在系统中经常能用到,一般可以在数据库做排序,也可以在服务端做排序.在数据库一般使用 order by 排序.而服务端也是使用快排.本期使用汇总排序. 问题 统计销售数据,每个销售员都有对应的部门和 ...

  5. C++获取设备 PID,VID 信息

    可直接编译(设置成:使用多字节字符集) 转来的,代码: /* http://www.experts-exchange.com/Programming/Editors_IDEs/Q_24506125.h ...

  6. JDBC-Druid增删改查

    由于刚学完JDBC,所以来小练一下,通过Druid实现对数据库的增删改查操作 (现在是真正简单的纯数据库操作,等我学过前端,再做一个比较具体的!) •数据库 新建一个数据库tb,创建brand表,有主 ...

  7. zookeeper有几种部署模式? zookeeper 怎么保证主从节点的状态同步?

    一.zookeeper的三种部署模式 Zookeeper 有三种部署模式分别是单机模式.伪集群模式.集群模式.这三种模式在不同的场景下使用: 单机部署:一般用来检验 Zookeeper 基础功能,熟悉 ...

  8. Dubbo 和 Spring Cloud 的区别?

    根据微服务架构在各方面的要素,看看 Spring Cloud 和 Dubbo 都提供了哪些支 持. Dubbo Spring Cloud 服务注册中心 Zookeep er Spring Cloud ...

  9. memcached 能接受的 key 的最大长度是多少?

    key 的最大长度是 250 个字符.需要注意的是,250 是 memcached 服务器端内 部的限制,如果您使用的客户端支持"key 的前缀"或类似特性,那么 key(前缀 + ...

  10. 学习Nginx(三)

      nginx的性能测试及常用优化手段 一.nginx的性能测试及对比 1.环境准备 [root@test8_hadoop_kaf ~]# yum install -y httpd-tools [ro ...