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 字符串格式化输出(format/printf)
Jul 21 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
Python字符串匹配之6种方法的使用详解
Apr 08 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
Django 路由层URLconf的实现
Dec 30 Python
python中的 zip函数详解及用法举例
Feb 16 Python
Python处理PDF与CDF实例
Feb 26 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
详解python的super()的作用和原理
Oct 29 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 Python
写好Python代码的几条重要技巧
May 21 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
elgg 获取文件图标地址的方法
2010/03/20 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
jquery判断浏览器类型的代码
2012/11/05 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
详解python中requirements.txt的一切
2017/03/03 Python
Python中常用信号signal类型实例
2018/01/25 Python
python用for循环求和的方法总结
2019/07/08 Python
DNA基因检测和分析:23andMe
2019/05/01 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
党员四风问题对照检查材料
2014/09/27 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
失职检讨书大全
2015/01/26 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL