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------读取二进制文件实例的更多相关文章

  1. Tensorflow读取文件到队列文件

    TensorFlow读取二进制文件数据到队列 2016-11-03 09:30:00      0个评论    来源:diligent_321的博客   收藏   我要投稿 TensorFlow是一种 ...

  2. 第十二节,TensorFlow读取数据的几种方法以及队列的使用

    TensorFlow程序读取数据一共有3种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow图的起 ...

  3. Tensorflow读取csv文件(转)

    常用的直接读取方法实例:#加载包 import tensorflow as tf import os #设置工作目录 os.chdir("你自己的目录") #查看目录 print( ...

  4. tensorflow读取图片案例

    1.知识点 """ 1.图片读取流程与API: 1.构造图片文件队列 文件队列API: a)tf.train.string_input_producer(string_t ...

  5. 用 C# 读取二进制文件

    当想到所有文件都转换为 XML时,确实是一件好事.但是,这并非事实.仍旧还有大量的文件格式不是XML,甚至也不是ASCII.二进制文件仍然在网络中传播,储存在磁盘上,在应用程序之间传递.相比之下,在处 ...

  6. 云端TensorFlow读取数据IO的高效方式

    低效的IO方式 最近通过观察PAI平台上TensoFlow用户的运行情况,发现大家在数据IO这方面还是有比较大的困惑,主要是因为很多同学没有很好的理解本地执行TensorFlow代码和分布式云端执行T ...

  7. tensorflow读取本地MNIST数据集

    tensorflow读取本地MNIST数据集 数据放入文件夹(不要解压gz): >>> import tensorflow as tf >>> from tenso ...

  8. python 读写二进制文件实例

    本程序,首先写入一个矩阵到二进制文件中,然后读取二进制文件恢复到另外一个矩阵中. #coding:utf--8 #https://www.cnblogs.com/cmnz/p/6986979.html ...

  9. 信息管理代码分析<二>读取二进制文件数据

    first和end做为全局变量,分别指向链表的头和尾.建立链表的方式也比较简易,从二进制文件数据块中,依次从头到尾读取,每读取一个就建立一个结点. /*基本模型*/ EMP *emp1; while( ...

随机推荐

  1. ConcurrentHashMap的使用

    http://blog.csdn.net/gjt19910817/article/details/47353909 Long oldValue, newValue; while(true) { old ...

  2. oracle11g如何创建数据库

    oracle11g创建数据库的步骤如下:1.按住键盘上Windows键,打开开始菜单,找到Database Configuration Assitant并打开:2.打开数据库配置助手Database ...

  3. Letter Combinations of a Phone Number——简单的回溯算法

    Given a digit string, return all possible letter combinations that the number could represent. A map ...

  4. google code-prettify 代码高亮插件使用方法

    找代码高亮插件选了好久,还是这个使用起来比较方便. 先上链接:插件下载地址 官方使用方法地址 建议看官方的资料,我这里仅仅简要描述一下使用方法: 引入方法: 测试引入是否成功:herf 换成 自己放置 ...

  5. CentOS7安装私有gitlab

    1.安装依赖包 yum install -y curl policycoreutils openssh-server openssh-clients postfix systemctl start p ...

  6. Java 中List 集合索引遍历与迭代器遍历

    package yzhou.iterator; import java.util.ArrayList; import java.util.HashSet; import java.util.Itera ...

  7. java原理—反射机制

    http://www.cnblogs.com/forlina/archive/2011/06/21/2085849.html 一.什么是反射:反射的概念是由Smith在1982年首次提出的,主要是指程 ...

  8. Why Did the Cow Cross the Road III(树状数组)

    Why Did the Cow Cross the Road III 时间限制: 1 Sec  内存限制: 128 MB提交: 65  解决: 28[提交][状态][讨论版] 题目描述 The lay ...

  9. 关于matplotlib,你要的饼图在这里

    Table of Contents 1  官方Demo 2  将实际数据应用于官方Demo 3  一些改善措施 3.1  重新设置字体大小 3.2  设置显示颜色,Method 1: 3.3  设置显 ...

  10. Linux基础系列-Day4

    top系统监控 top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具.通过top命令所提供的互动式界面,用热键可以管理. [root@centos-py ...