Python将自己的图片数据集导入h5py,做识别的预处理
很多情况下,在训练卷积神经网络时,需要将自己的图片作为卷积神经网络的输入。
将自己的图片数据集导入h5py,所占空间小,使用方便
条件:自己的图片,eg:cats VS dogs,并将两类图片分别放置于两个文件夹(我这里是yes_tumble与not_tumble)
import os
import numpy as np
from PIL import Image
import tensorflow as tf
import matplotlib.pyplot as plt
import sklearn
from sklearn import preprocessing
import h5py
import scipy
#导入必要的包
def get_files(file_dir):cats = []label_cats = []dogs = []label_dogs = []for file in os.listdir(file_dir+'/not_tumble'):cats.append(file_dir +'/not_tumble'+'/'+ file) label_cats.append(0) #添加标签,该类标签为0,此为2分类例子,多类别识别问题自行添加for file in os.listdir(file_dir+'/yes_tumble'):dogs.append(file_dir +'/yes_tumble'+'/'+file)label_dogs.append(1)#把cat和dog合起来组成一个list(img和lab)image_list = np.hstack((cats, dogs))label_list = np.hstack((label_cats, label_dogs))#利用shuffle打乱顺序temp = np.array([image_list, label_list])temp = temp.transpose()np.random.shuffle(temp)#从打乱的temp中再取出list(img和lab)image_list = list(temp[:, 0])label_list = list(temp[:, 1])label_list = [int(i) for i in label_list] return image_list,label_list#返回两个list 分别为图片文件名及其标签 顺序已被打乱
train_dir = 'F:/CSISA_Picture'
image_list,label_list = get_files(train_dir)print(len(image_list))
print(len(label_list))
#450为数据长度的20%
Train_image = np.random.rand(len(image_list)-450, 64, 64, 3).astype('float32')
Train_label = np.random.rand(len(image_list)-450, 1).astype('float32')Test_image = np.random.rand(450, 64, 64, 3).astype('float32')
Test_label = np.random.rand(450, 1).astype('float32')
for i in range(len(image_list)-450):Train_image[i] = np.array(plt.imread(image_list[i]))Train_label[i] = np.array(label_list[i])for i in range(len(image_list)-450, len(image_list)):Test_image[i+450-len(image_list)] = np.array(plt.imread(image_list[i]))Test_label[i+450-len(image_list)] = np.array(label_list[i])
# Create a new file
f = h5py.File('data.h5', 'w')
f.create_dataset('X_train', data=Train_image)
f.create_dataset('y_train', data=Train_label)
f.create_dataset('X_test', data=Test_image)
f.create_dataset('y_test', data=Test_label)
f.close()
# Load hdf5 dataset
train_dataset = h5py.File('data.h5', 'r')
train_set_x_orig = np.array(train_dataset['X_train'][:]) # your train set features
train_set_y_orig = np.array(train_dataset['y_train'][:]) # your train set labels
test_set_x_orig = np.array(train_dataset['X_test'][:]) # your train set features
test_set_y_orig = np.array(train_dataset['y_test'][:]) # your train set labels
f.close()
print(train_set_x_orig.shape)
print(train_set_y_orig.shape)print(train_set_x_orig.max())
print(train_set_x_orig.min())print(test_set_x_orig.shape)
print(test_set_y_orig.shape)
#测试
plt.imshow(train_set_x_orig[222])
print(train_set_y_orig[222])
Python将自己的图片数据集导入h5py,做识别的预处理相关推荐
- python批量下载txt图片批量导入到ppt
初步有各个楼盘图片的相关网址,想批量导入到ppt,编相应序号,保证每一张一个楼盘,每页展示6-8张图片.第一步:根据相关网址批量下载图片 相关网址放入file_url_text.txt中,形成列表 ...
- python数据集_【Python数据分析实战】divorce数据集
1.数据集来源Divorce Predictors data set Data Setarchive.ics.uci.edu 2.库.函数和数据集的导入 import numpy as np imp ...
- python:从零开始的图片h5py数据集制作
图片数据集制作 python图品h5py数据集的制作 首先,我们要有图片的数据 接下来,可以开始制作了 python图品h5py数据集的制作 由于我是看床长的人工智能教程学习的,所以我会模仿教程里的数 ...
- python 训练集 测试集 验证集划分_将自己的图片数据集分成训练集、验证集和测试集并用 Tensorflow2.0 导入...
文章目录项目介绍 划分数据集1.在 dataset 目录下创建三个文件夹 2.将原来 dataset 文件夹中的子文件夹分别复制到这三个文件夹中 3.在 python 中指定所有路径 4.将这三个文件 ...
- python制作图片数据集 h5py_python库——h5py入门讲解
转载自http://m.blog.csdn.net/csdn15698845876/article/details/73278120 h5py简单介绍 h5py文件是存放两类对象的容器,数据集(dat ...
- python制作图片数据集 h5py_基于h5py的使用及数据封装代码
1. h5py简单介绍 h5py文件是存放两类对象的容器,数据集(dataset)和组(group),dataset类似数组类的数据集合,和numpy的数组差不多.group是像文件夹一样的容器,它好 ...
- 将MNIST手写数字数据集导入NumPy数组(《深度学习入门:基于Python的理论与实现》实践笔记)
将MNIST手写数字数据集导入NumPy数组(<深度学习入门:基于Python的理论与实现>实践笔记) 一.下载MNIST数据集(使用urllib.request.urlretrieve( ...
- 【Python】计算机视觉 手掌图片穴位识别(二)
返回至系列文章导航博客 1 简要介绍 看前说明:此方法可能有一定的缺陷,但是我认为有一定的实现可能所以做了这个板块.倘若有专业的中医医生或者相关工作者对此有建议或者意见可以与我联系交流哦~ 关于手掌我 ...
- 利用Python对MNIST手写数据集进行数字识别(初学者入门级)
利用Python对MNIST手写数据集进行数字识别 一.编程环境Jupyter Notebook Jupyter Notebook,之前被称为IPython notebook,是一个交互式的Web应用 ...
最新文章
- ACM学习历程—HDU5586 Sum(动态规划)(BestCoder Round #64 (div.2) 1002)
- R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(输出多个分组、色彩配置、添加数据点)实战
- 洛谷:P1901 发射站
- 用c语言画滚动的圆,求__C语言实现圆球滚动{高手速来}
- 【嵌入式】C语言高级编程-可变参数宏(12)
- android文件读写
- python 状态模式_使用状态模式自由切换登录状态
- md5 java .net_.net, java MD5 加密 互换
- 学习SQL:关系类型
- viewport就是这回事
- Html+Js 3D 龙卷风
- Java实现MD5加盐加密算法
- 1分钟看懂区块链和分布式网络
- android手机免费无线投屏电脑方法教程步骤AirServer7
- 【苹果推】imessage群发条件文档(推送证书)开发工具Pushnotification
- 《庄子》中说到,“一尺之棰,日取其半,万世不竭”。第一天有一根长度为 a(a\le 10^9)a(a≤10 9 ) 的木棍,从第二天开始,每天都要将这根木棍锯掉一半(每次除2向下取整)第几天变为1
- 乱七八糟代码合集٩(๑◡๑)۶
- 【名片制作】深灰色背景·简单名片设计
- 1386: 众数的数量
- cnc计算机控制,第二章计算机数控系统CNC与控制原理分解.pdf
热门文章
- ubuntu16.04安装g2o
- @Patten注解正则表达式密码验证
- 什么是协调能力?如何提高协调能力?
- EFM32片内外设--ADC之多通道采样+Timer+PRS触发+DMA
- datetimepicker控件怎么改变hover颜色_Qt编写自定义控件9-导航按钮控件
- CDH5.16+Flink1.11.0+zepplien初步踩坑
- 澳门大学计算机qs排名,澳门大学2018-2019年QS排名
- 这种格式的梯形面积算法应该怎么写
- 哈佛大学经典校训20条
- 兄弟7010加粉解码DCP-7010加粉