TensorFlow2.X使用图片制作简单的数据集训练模型


Posted in Python onApril 08, 2020

Tensorflow内置了许多数据集,但是实际自己应用的时候还是需要使用自己的数据集,这里TensorFlow 官网也给介绍文档,官方文档。这里对整个流程做一个总结(以手势识别的数据集为例)。

1、 收集手势图片

方法多种多样了。我通过摄像头自己采集了一些手势图片。保存成如下形式,

TensorFlow2.X使用图片制作简单的数据集训练模型

以同样的形式在建立一个测试集,当然也可以不弄,在程序里处理。

2、构建数据集

导入相关的包

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics
from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2
import os
import pathlib
import random
import matplotlib.pyplot as plt

读取文件

data_root = pathlib.Path('D:\code\PYTHON\gesture_recognition\Dataset')
print(data_root)
for item in data_root.iterdir():
 print(item)

TensorFlow2.X使用图片制作简单的数据集训练模型

读取图片路径到list中

all_image_paths = list(data_root.glob('*/*'))
all_image_paths = [str(path) for path in all_image_paths]
random.shuffle(all_image_paths)
image_count = len(all_image_paths)
print(image_count) ##统计共有多少图片
for i in range(10):
 print(all_image_paths[i])

TensorFlow2.X使用图片制作简单的数据集训练模型

label_names = sorted(item.name for item in data_root.glob('*/') if item.is_dir())
print(label_names) #其实就是文件夹的名字
label_to_index = dict((name, index) for index, name in enumerate(label_names))
print(label_to_index)
all_image_labels = [label_to_index[pathlib.Path(path).parent.name]
     for path in all_image_paths]

print("First 10 labels indices: ", all_image_labels[:10])

TensorFlow2.X使用图片制作简单的数据集训练模型

预处理

def preprocess_image(image):
 image = tf.image.decode_jpeg(image, channels=3)
 image = tf.image.resize(image, [100, 100])
 image /= 255.0 # normalize to [0,1] range
 # image = tf.reshape(image,[100*100*3])
 return image

def load_and_preprocess_image(path,label):
 image = tf.io.read_file(path)
 return preprocess_image(image),label

构建一个 tf.data.Dataset

ds = tf.data.Dataset.from_tensor_slices((all_image_paths, all_image_labels))
train_data = ds.map(load_and_preprocess_image).batch(16)

同样的方式在制作一个测试集,就可以用于模型训练和测试了。

总结

到此这篇关于TensorFlow2.X使用图片制作简单的数据集训练模型的文章就介绍到这了,更多相关TensorFlow数据集训练模型内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 随机数生成的代码的详细分析
May 15 Python
python实现代码行数统计示例分享
Feb 10 Python
kNN算法python实现和简单数字识别的方法
Nov 18 Python
举例详解Python中的split()函数的使用方法
Apr 07 Python
Puppeteer使用示例详解
Jun 20 Python
python飞机大战pygame游戏之敌机出场实现方法详解
Dec 17 Python
pytorch的batch normalize使用详解
Jan 15 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
python判断字符串以什么结尾的实例方法
Sep 18 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
Apr 08 #Python
使用Python将Exception异常错误堆栈信息写入日志文件
Apr 08 #Python
TensorFlow2.X结合OpenCV 实现手势识别功能
Apr 08 #Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 #Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 #Python
解决python多线程报错:AttributeError: Can't pickle local object问题
Apr 08 #Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
Apr 08 #Python
You might like
一个odbc连mssql分页的类
2006/10/09 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
常用PHP封装分页工具类
2017/01/14 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
js获取视频时长代码
2014/04/10 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
js实现楼层导航功能
2017/02/23 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
Python实现代码块儿折叠
2020/04/15 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
初中高效课堂实施方案
2014/02/26 职场文书
投资协议书范本
2014/04/21 职场文书
反邪教观后感
2015/06/11 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis