tensorflow中tfrecords使用介绍
这篇文章主要讲一下如何用Tensorflow中的标准数据读取方式简单的实现对自己数据的读取操作.
主要分为以下两个步骤:(1)将自己的数据集转化为 xx.tfrecords的形式;(2):在自己的程序中读取并使用.tfrecords进行操作.
数据集转换:为了便于讲解,我们简单制作了一个数据,如下图所示:
程序:
- import tensorflow as tf
- import numpy as np
- import os
- from PIL import Image
- def _int64_feature(value):
- return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))
- def _bytes_feature(value):
- return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
- def img_to_tfrecord(data_path):
- rows = 256
- cols = 256
- depth = 3
- writer = tf.python_io.TFRecordWriter('test.tfrecords')
- labelfile=open("random.txt")
- lines=labelfile.readlines()
- for line in lines:
- #print line
- img_name = line.split(" ")[0]#name
- label = line.split(" ")[1]#label
- img_path = data_path+img_name
- img = Image.open(img_path)
- img = img.resize((rows,cols))
- #img_raw = img.tostring()
- img_raw = img.tobytes()
- example = tf.train.Example(features = tf.train.Features(feature = {
- 'height': _int64_feature(rows),
- 'weight': _int64_feature(cols),
- 'depth': _int64_feature(depth),
- 'image_raw': _bytes_feature(img_raw),
- 'label': _bytes_feature(label)}))
- writer.write(example.SerializeToString())
- writer.close()
- if __name__ == '__main__':
- current_dir = os.getcwd()
- data_path = current_dir + '/data/'
- #name = current_dir + '/data'
- print('Convert start')
- img_to_tfrecord(data_path)
- print('done!')
- #encoding=utf-8
- # 设置utf-8编码,方便在程序中加入中文注释.
- import os
- import scipy.misc
- import tensorflow as tf
- import numpy as np
- from test import *
- import matplotlib.pyplot as plt
- def read_and_decode(filename_queue):
- reader = tf.TFRecordReader()
- _, serialized_example = reader.read(filename_queue)
- features = tf.parse_single_example(serialized_example,features = {
- 'image_raw':tf.FixedLenFeature([], tf.string)})
- image = tf.decode_raw(features['image_raw'], tf.uint8)
- image = tf.reshape(image, [OUTPUT_SIZE, OUTPUT_SIZE, 3])
- image = tf.cast(image, tf.float32)
- #image = image / 255.0
- return image
- data_dir = '/home/sanyuan/dataset_animal/dataset_tfrecords/'
- filenames = [os.path.join(data_dir,'train%d.tfrecords' % ii) for ii in range(1)] #如果有多个文件,直接更改这里即可
- filename_queue = tf.train.string_input_producer(filenames)
- image = read_and_decode(filename_queue)
- with tf.Session() as sess:
- coord = tf.train.Coordinator()
- threads = tf.train.start_queue_runners(coord=coord)
- for i in xrange(2):
- img = sess.run([image])
- print(img[0].shape) # 设置batch_size等于1.每次读出来只有一张图
- plt.imshow(img[0])
- plt.show()
- coord.request_stop()
- coord.join(threads)
tensorflow中tfrecords使用介绍相关推荐
- TensorFlow 中文文档 介绍
介绍 本章的目的是让你了解和运行 TensorFlow 在开始之前, 先看一段使用 Python API 撰写的 TensorFlow 示例代码, 对将要学习的内容有初步的印象. 这段很短的 Pyth ...
- tensorflow中的命令行参数介绍
1.tensorflow中的tf.flags参数介绍 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019-01-20 21:39: ...
- TF:tensorflow框架中常用函数介绍—tf.Variable()和tf.get_variable()用法及其区别
TF:tensorflow框架中常用函数介绍-tf.Variable()和tf.get_variable()用法及其区别 目录 tensorflow框架 tensorflow.Variable()函数 ...
- TensorFlow Hub介绍:TensorFlow中可重用的机器学习模块库
摘要: 本文对TensorFlow Hub库的介绍,并举例说明其用法. 在软件开发中,最常见的失误就是容易忽视共享代码库,而库则能够使软件开发具有更高的效率.从某种意义上来说,它改变了编程的过程.我们 ...
- python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式
本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...
- tensorflow中tfrecord数据操作
前言: 为了更加展示tfrecord数据的相关操作,笔者后续又写了一个实践的简单例子进一步解释,具体可以看: TFrecords 制作数据集小例子(多标签)_爱吃火锅的博客-CSDN博客 正文: tf ...
- TensorFlow中的计算图
作者 | stephenDC 来源 | 大数据与人工智能(ID:ai-big-data) 1 什么是计算图? 一个机器学习任务的核心是模型的定义以及模型的参数求解方式,对这两者进行抽象之后,可以确定一 ...
- 如何使用TensorFlow中的Dataset API
翻译 | AI科技大本营 参与 | zzq 审校 | reason_W 本文已更新至TensorFlow1.5版本 我们知道,在TensorFlow中可以使用feed-dict的方式输入数据信息,但是 ...
- TensorFlow中设置学习率的方式
目录 1. 指数衰减 2. 分段常数衰减 3. 自然指数衰减 4. 多项式衰减 5. 倒数衰减 6. 余弦衰减 6.1 标准余弦衰减 6.2 重启余弦衰减 6.3 线性余弦噪声 6.4 噪声余弦衰减 ...
- 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
GirlFriend 在复现论文的时候,我发现她不太会将通用数学公式转化为张量运算公式,导致 tensorflow 无法通过并行的方式优化其论文复现代码的运行速率. 这里对给 GirlFriend 讲 ...
最新文章
- SVO中 Inverse Compositional Image Alignment方法的学习笔记
- 自定义html页面鼠标右键,javascript鼠标右键菜单自定义效果
- visionmaster视觉软件说明书_测试策略与软件需求层次
- VC中实现弹出CEdit的气泡提示框
- 受大厂们青睐的Web前端工程师需要掌握的3项能力!
- 有三角形的即时通讯源码?
- 扫地机器人石头爬坡_都这么强了,还要怎么升级:真实评测石头T6扫地机器人...
- 拓端tecdat|用Python粒度分析及其在沉积学中应用研究
- html微信怎么转发,微信朋友圈怎么转发别人的文章(链接、视频、图片、文字)
- 基于随机森林实现特征选择降维及回归预测(Matlab代码实现)
- TestNG教程三:TestNG中的监听
- spring mvc +maven 集成 quartz实现定时任务
- ocpc php,oCPC匹配词很乱怎么办?| SEM问答
- 前端效果 -- 实现折叠、展开动画效果
- 剑指Offer题目详解(CPP、JAVA)
- 主板电容损坏导致台式机开机风扇转无显示信号输出
- 最近看中的几款Limitless的家具
- python学习笔记:python类和对象,文件操作,网络编程
- 阿里副总裁人设“翻车”:30 岁成 AI 顶尖科学家,但我很懒
- 上海交通大学python实验二_20193207 实验二《Python程序设计》实验报告
热门文章
- Remap 后的 USART1 不能发送数据
- java7-3 继承
- 【转】“正由另一进程使用,因此该进程无法访问该文件”的问题解决方法
- 关于System.identityHashCode(obj) 与 obj.hashcode()
- .NET 应用从 Visual Studio 迁移到 Eclipse
- Java中的for循环和JavaScript中的for循环差别初探(02)
- 深入理解Yii2.0 (3)行为(Behavior)
- SAX方式解析XML文档
- 47. Use traits for information about types.
- 02. 实现Singleton模式(C++版本)