TensorFlow------读取二进制文件实例
TensorFlow------读取二进制文件实例:
class CifarRead(object):
'''
完成读取二进制文件,写进tfrecords,读取tfrecords
:param object:
:return:
'''
def __init__(self,filelist):
# 文件列表
self.file_list = filelist # 定义读取的图片的一些属性
self.height = 32
self.width = 32
self.channel = 3
# 二进制文件每张图片的字节
self.label_bytes = 1
self.image_bytes = self.height * self.width * self.channel
self.bytes = self.label_bytes + self.image_bytes def read_and_decode(self):
# 1. 构建文件队列
file_queue = tf.train.string_input_producer(self.file_list) # 2. 构建二进制文件读取器,读取内容,每个样本的字节数
reader = tf.FixedLengthRecordReader(self.bytes) key,value = reader.read(file_queue) # 3. 解码内容,二进制文件内容的解码 label_image包含目标值和特征值
label_image = tf.decode_raw(value,tf.uint8)
print(label_image) # 4.分割出图片和标签数据,特征值和目标值
label = tf.slice(label_image,[0],[self.label_bytes]) image = tf.slice(label_image,[self.label_bytes],[self.image_bytes])
print('---->')
print(image) # 5. 可以对图片的特征数据进行形状的改变 [3072]-->[32,32,3]
image_reshape = tf.reshape(image,[self.height,self.width,self.channel]) print('======>')
print(label)
print('======>') # 6. 批处理数据
image_batch,label_batch = tf.train.batch([image_reshape,label],batch_size=10,num_threads=1,capacity=10) print(image_batch,label_batch) return image_batch,label_batch if __name__ == '__main__':
# 找到文件,构建列表 路径+名字 ->列表当中
file_name = os.listdir(FLAGS.cifar_dir) # 拼接路径 重新组成列表
filelist = [os.path.join(FLAGS.cifar_dir,file) for file in file_name if file[-3:] == 'bin'] # 调用函数传参
cf = CifarRead(filelist)
image_batch,label_batch = cf.read_and_decode() # 开启会话
with tf.Session() as sess:
# 定义一个线程协调器
coord = tf.train.Coordinator() # 开启读文件的线程
threads = tf.train.start_queue_runners(sess,coord=coord) # 打印读取的内容
print(sess.run([image_batch,label_batch])) # 回收子线程
coord.request_stop() coord.join(threads)
TensorFlow------读取二进制文件实例的更多相关文章
- Tensorflow读取文件到队列文件
TensorFlow读取二进制文件数据到队列 2016-11-03 09:30:00 0个评论 来源:diligent_321的博客 收藏 我要投稿 TensorFlow是一种 ...
- 第十二节,TensorFlow读取数据的几种方法以及队列的使用
TensorFlow程序读取数据一共有3种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow图的起 ...
- Tensorflow读取csv文件(转)
常用的直接读取方法实例:#加载包 import tensorflow as tf import os #设置工作目录 os.chdir("你自己的目录") #查看目录 print( ...
- tensorflow读取图片案例
1.知识点 """ 1.图片读取流程与API: 1.构造图片文件队列 文件队列API: a)tf.train.string_input_producer(string_t ...
- 用 C# 读取二进制文件
当想到所有文件都转换为 XML时,确实是一件好事.但是,这并非事实.仍旧还有大量的文件格式不是XML,甚至也不是ASCII.二进制文件仍然在网络中传播,储存在磁盘上,在应用程序之间传递.相比之下,在处 ...
- 云端TensorFlow读取数据IO的高效方式
低效的IO方式 最近通过观察PAI平台上TensoFlow用户的运行情况,发现大家在数据IO这方面还是有比较大的困惑,主要是因为很多同学没有很好的理解本地执行TensorFlow代码和分布式云端执行T ...
- tensorflow读取本地MNIST数据集
tensorflow读取本地MNIST数据集 数据放入文件夹(不要解压gz): >>> import tensorflow as tf >>> from tenso ...
- python 读写二进制文件实例
本程序,首先写入一个矩阵到二进制文件中,然后读取二进制文件恢复到另外一个矩阵中. #coding:utf--8 #https://www.cnblogs.com/cmnz/p/6986979.html ...
- 信息管理代码分析<二>读取二进制文件数据
first和end做为全局变量,分别指向链表的头和尾.建立链表的方式也比较简易,从二进制文件数据块中,依次从头到尾读取,每读取一个就建立一个结点. /*基本模型*/ EMP *emp1; while( ...
随机推荐
- 深度理解onmouseover事件和onmouseout事件
今天简单的讲解下onmouseover事件和onmouseout事件,一直以为它们只是简单的分别实现鼠标指针移动到元素上时触发事件和在鼠标指针移出指定的对象时触发事件,但是突然发现这些只是对它们简单的 ...
- nodejs安装sharp出错的问题
PS D:\report\source\lpd-planning-allocation> yarn yarn install v1.3.2 [/] Resolving packages... [ ...
- 7/31 CSU-ACM2018暑期训练7-贪心
比赛链接 A-CSU - 1588 现在有n堆果子,第i堆有ai个果子.现在要把这些果子合并成一堆,每次合并的代价是两堆果子的总果子数.求合并所有果子的最小代价. Input 第一行包含一个整数T(T ...
- Java GlassPane进度条遮罩
package com.swing.demo; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Flo ...
- Linux系统运维问题收集
[Q1]如何修改系统时间? #修改成 2016-11-23 11:10:50 A: date -s 11/23/2016 date -s 11:10:50 date -R #查看当前时区和时间 [ ...
- Python开发基础-Day9-生成器、三元表达式、列表生成式、生成器表达式
生成器 生成器函数:函数体内包含有yield关键字,该函数执行的结果是生成器,生成器在本质上就是迭代器. def foo(): print('first------>') yield 1 pri ...
- Python开发基础-Day4-布尔运算、集合
布尔值 True 真 False 假 所有的数据类型都自带布尔值,数据只有在0,None和空的时候为False. print(bool()) print(bool()) print(bool('')) ...
- 【BZOJ 2118】 2118: 墨墨的等式 (最短路)
2118: 墨墨的等式 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求 ...
- java 抽象方法 能用 静态 static 修饰,或者 native 修饰 么
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha static与abstract不能同时使用 用static声明方法表明这个方法在不生成类 ...
- response (响应对象)
一.response响应过程 在去发送一个请求时, 会找到tomcat引擎 引擎会找到对应的web应用,并且会创建request对象和response对象 找到应用后, 会执行应用的web.xml再去 ...