data_loader读取器
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读取器的更多相关文章
- Laravel 5.1 文档攻略 —— Eloquent: 读取器和修饰器
date_range 8月前 tag_faces Woody remove_red_eye 1483 chat0 简介 这一章其实很简单,Model的属性不是和数据表的字段一一对应吗? 那么在存储和呈 ...
- 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 查 ...
- tp读取器和写入器
一.读取器 控制器调用如下: //以ID的方式查询数据$user=User::get(3);//查询ID为3的单条数据echo $user->username;//以对象的方式显示对应的字段值 ...
- 调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题
在运用Entity Framework调用存储过程的时候,遇到"调用EF的存储过程报"调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题 ...
- Replication--数据库镜像阻塞复制日志读取器的解决的办法
问题描述:在同一数据库上使用镜像和复制,为保证镜像切换后,复制还能继续,因此当镜像断开或暂停时,复制日志读取器会被阻塞直到日志被同步到镜像从服务器端(无论异步还是同步).日志状态显示:复制的事务正等待 ...
随机推荐
- ArcGIS温泉数据聚类分析、核密度分析
这期博主给大家介绍下ArcGIS中的Riple's K 函数.与Kernel核密度分析. 首先从百度获取了湖南省的温泉数据.如图: 湖南省温泉数据 1.数据处理 (1)复制粘贴x.y坐标. (2)用快 ...
- Linux检查服务器是否被入侵
Linux检查服务器是否被入侵 检查root用户是否被纂改 awk -F: '$3==0{print $1}' /etc/passwd awk -F: '$3==0 {print}' /etc/pas ...
- OOS 预览报错解决思路
预览报错解决思路: 官方链接:https://docs.microsoft.com/zh-cn/officeonlineserver/office-online-server :> 查看服务器内 ...
- kdump原理,是如何找到入口的
请解释下kdump原理,捕获内核是如何获取到生产内核的首地址的.
- 嵌套OOPS导致系统卡死 每个CPU都上报softlockup的问题
问题现象:在ARM服务器上,构造oops异常,本应该产生panic,进入dump流程,并且系统重启,但是系统并未重启,而是出现了卡死,在串口会隔一段时间就循环打印调用栈信息.如下所示 linux-fA ...
- weblogic重要漏洞记录
(PS:之前在freebuf发过,这里直接复制过来的,所以有些图片会有水印) 前言 T3协议存在多个反序列化漏洞CVE-2015-4852/CVE-2016-0638/CVE-2016-3510/CV ...
- MySQL — 数据查询语言
目录 1.基础查询 2.条件查询 3.分组查询 4.排序查询 5.分页查询 6.多表查询 6.1.连接查询 6.1.1.内连接 6.1.2.外连接 6.1.3.自连接 6.1.4.联合查询 6.2.子 ...
- netcore后台任务注意事项
开局一张图,故事慢慢编!这是一个后台任务打印时间的德莫,代码如下: using BackGroundTask; var builder = WebApplication.CreateBuilder() ...
- sqlserver下载地址及密匙
SqlServer 2017 下载地址及密钥 下载地址: ed2k://|file|cn_sql_server_2017_developer_x64_dvd_11296175.iso|17697771 ...
- zookeeper 是如何保证事务的顺序一致性的?
zookeeper 采用了全局递增的事务 Id 来标识,所有的 proposal(提议)都在被 提出的时候加上了 zxid,zxid 实际上是一个 64 位的数字,高 32 位是 epoch(时 期; ...