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. BSOJ7526口胡

    直觉告诉我一般情况下,询问古怪的题都是分块,但是这一类题不太一样. 思考一个奇怪的暴力,每次询问的时候询问 \(f(1,k),f(2,k+1),f(3,k+2),...f(n-k+1,n)\),然后加 ...

  2. kubernetes资源使用glusterfs卷进行数据持久化

    1.GlusterFS部署 安装GlusterFS集群的主要目的是为k8s集群提供分布式持久化存储. GlusterFS部署使用2台服务器,服务名称与IP如下: 1 db-storagea 10.1. ...

  3. 阿里一面,说说你了解zookeeper的应用场景有哪些?

    1.前言 又到了金三银四的时候,大家都按耐不住内心的躁动,我在这里给大家分享下之前面试中遇到的一个知识点(zookeeper应用场景),希望对大家有些帮助.如有不足,欢迎大佬们指点指点. 2.zook ...

  4. 1分钟为Win10瘦身!把吃掉的硬盘找回来

    很多小伙伴升级完Win10后都发现C盘变小了,不少人以为这大概就是Win10太占磁盘空间了.但事实上,Win10和以前的操作系统一样,对于C盘空间并没有什么太高要求.出现这个问题的主要原因,是Win1 ...

  5. dp:找零问题

    C代表币的种类,n代表钱数 #include<iostream> using namespace std; #define C 4 void main( ) { int coin[4]={ ...

  6. Kafka03--Kafka消费者使用方式

    前言 与生产者客户端一样,消费者端也由最初的scala版本过渡到现在的Java版本. 正常的消费者逻辑需要以下4个步骤: KafkaConsumer的客户端参数配置和对应实例: 订阅主题 拉取消息并消 ...

  7. List 和 Map 区别?

    表面来看,List是一个只是存放单个元素的集合,List集合所包含的元素可以重复,元素按放入的先后顺序来存放,程序可以通过元素的索引来读取元素,因此List相当于一个动态数组:Map则是一个存放key ...

  8. 多数据源并且数据库类型不同的情况下PageHelper的使用

    一.问题来源 最近开发一个项目需要依赖两个数据源,数据源类型分别为oracle和postgresql,代码中使用com.github.pagehelper分页插件进行分页,代码运行过程中postgre ...

  9. Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别?

    1.ZooKeeper保证的是CP,Eureka保证的是AP ZooKeeper在选举期间注册服务瘫痪,虽然服务最终会恢复,但是选举期间不可用的 Eureka各个节点是平等关系,只要有一台Eureka ...

  10. springboot user guide hand book

    手册: https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/html/getting-started-first-appli ...