TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现


Posted in Python onFebruary 17, 2020

TensorFlow官网给的cifar-10教程,是卷积神经网络入门的好例子,有时想直接拿这个模型来跑自己的数据,却发现他的数据类型不是常见的,我们一般获取的数据(图片)以文件夹分类存好,或者直接在文件名上注明了类别,这时就要通过文件名的来获取标签,显然直接用cifar-10的方式是不行的。

这里当然可以吧数据转化成cifar-10那种类型,不过个人不喜欢这种方式吧。

另一种就还是老办法,对文件名进行处理,获取标签。

其实处理文件名,对python来说,很简单。只是刚接触卷积神经网络的,可能并不熟悉TensorFlow的用法(本人),怎么修改代码才能以这种方式读取数据进队列呢?

看代码:

import tensorflow as tf
import os

#这就是数据所在的路径,其子目录是若干个文件夹,分别对应一类数据,
#文件夹下存放的就是对应那一类的数据。
#命名方式:1,2,3,4····(代表不同的类别,简单粗暴)
path="./data"

classes=2#数据类别的数量
imagesList=[]#存放图片数据的列表(这里存放的仅仅是图片所在的路径,并不是图片)
labelsList=[]#存放标签,与上面图片是一一对应的
filepaths=[os.path.join(path,"%d"%i)for i in range (1,classes+1)]#存放path的子目录的路径
for p in filepaths:
 for filename in os.listdir(p):#获取图片的名字
  imagesList.append(os.path.join(p,filename))#图片名和路径拼接,然后如队列
  labelsList.append(int(p[-1]))#这里是按照命名的方式,p的最后一个字符就是类别

image = tf.cast(imagesList,tf.string)#转化成tf的数据类型
label = tf.cast(labelsList,tf.int64)
queue = tf.train.slice_input_producer([image,label])#生成队列,这里也就关键的地方
label = queue[1]
image_c = tf.read_file(queue[0])
image = tf.image.decode_jpeg(image_c,channels = 3)
training_image_data = tf.image.resize_images(image, [2, 2]) #这个函数是重塑行,具体干嘛不清楚,不用有时报错
example_batch, label_batch = tf.train.shuffle_batch([training_image_data,label], batch_size=1, capacity=2, min_after_dequeue=1) #生成Batch
# 运行Graph 
with tf.Session() as sess: 
 coord = tf.train.Coordinator() #创建一个协调器,管理线程 
 threads = tf.train.start_queue_runners(coord=coord) #启动QueueRunner, 此时文件名队列已经进队。 
 for i in range(6): 
  e_val,l_val = sess.run([example_batch, label_batch]) 
  print (e_val,l_val)#弄些简单的数据来测试效果。

 coord.request_stop() 
 coord.join(threads)

以上这篇TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
python中模块查找的原理与方法详解
Aug 11 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
Jul 26 Python
python读取文件名并改名字的实例
Jan 07 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
Python网页解析器使用实例详解
May 30 Python
Python项目跨域问题解决方案
Jun 22 Python
Python rabbitMQ如何实现生产消费者模式
Aug 24 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
Pycharm新手使用教程(图文详解)
Sep 17 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 #Python
Python cookie的保存与读取、SSL讲解
Feb 17 #Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 #Python
Python交互环境下打印和输入函数的实例内容
Feb 16 #Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 #Python
基于python实现微信好友数据分析(简单)
Feb 16 #Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 #Python
You might like
php生成高清缩略图实例详解
2015/12/07 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
2017/02/21 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
python实现获取序列中最小的几个元素
2014/09/25 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
用python处理MS Word的实例讲解
2018/05/08 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
pycharm永久激活超详细教程
2020/10/29 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
常见的软件开发流程有哪些
2015/11/14 面试题
大学生创业计划书的范文
2014/01/07 职场文书
酒店个人求职信范文
2014/01/25 职场文书
党员入党表决心的话
2014/03/11 职场文书
项目合作意向书范本
2014/04/01 职场文书
提拔干部考察材料
2014/05/26 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
企业财务人员岗位职责
2015/04/14 职场文书
初中思品教学反思
2016/02/20 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python