关于Tensorflow的TFRecords读取问题 10C

生成TFRecords核心代码(图片处理成224 * 224 * 3)

 with tf.Session() as sess:
        for i in range(len(img_path_0)):
            # 获得图片的路径和类型
            img_path = img_path_0[i]
            label = label_0[i]


            # 读取图片
            image = tf.gfile.FastGFile(img_path, 'rb').read()
            # 解码图片(如果是 png 格式就使用 decode_png)
            image = tf.image.decode_jpeg(image)
            image_size = 224
                        # 图像预处理
            image = ima_preprocess.preprocess_for_train(image, image_size, image_size)
            # 转换数据类型
            image = tf.image.convert_image_dtype(image, dtype=tf.float32)
            # resize 224 * 224 * 3
            image = tf.image.resize_images(image, [width, height], method=0)
            # 执行 op: image
            image = sess.run(image)
            #print(image)
            # print(image.shape)
            # plt.imshow(image)
            # plt.show()

            # 将其图片矩阵转换成 tostring,tobytes
            image_raw = image.tostring()

            # 将数据整理成 TFRecord 需要的数据结构
            example = tf.train.Example(features=tf.train.Features(feature={
                'image_raw': _bytes_feature(image_raw),
                'label': _int64_feature(label),
                'height': _int64_feature(height),
                'width': _int64_feature(width),
                'channels': _int64_feature(channels),
            }))

            # 写 TFRecord
            writer.write(example.SerializeToString())
            print(i, label)

    writer.close()

在读取TFRecords的时候,由于之前使用tostring,导致使用代码

 decode_image = tf.decode_raw(features['image'], tf.uint8)

产生的矩阵比原来大了4倍,即 224 * 224 * 3 * 4
没办法使用之后的reshape[224, 224, 3]

请问,tf下有什么函数可以把TFRecords内的数据decode到原始的图片的矩阵??

1个回答

xajlzz
xajlzz 还是在解码之后,直接reshape的,在实际运行代码的时候,会报错。因为tostring之后,1个数字会被拆分为4个string。然后,解码为uint8之后,会变成4个整数。这比之前的图片矩阵整整大了4倍,没办法直接reshape!!!
大约一年之前 回复
xajlzz
xajlzz #对于图像数据需要使用decode_raw解码,同样也需要set_shape # dense data image = tf.decode_raw(features['image_raw'], tf.uint8) image_shape = tf.stack([height, width, 3]) image = tf.reshape(image, image_shape) image.set_shape([cfg.TRAIN.IMG_SIZE[0], cfg.TRAIN.IMG_SIZE[1], 3])
大约一年之前 回复
xajlzz
xajlzz 你给的链接里面
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Tensorflow读取二进制文件并将数据写进tfrecords后读取tfrecords
tensorflow可以读取样本长度固定的二进制文件,比如CIFAR-10数据,该二进制数据中一个样本由1字节的label和32*32*3字节的image组成。TFRecords是tensorflow设计的一种内置的文件格式,是一种二进制文件,它能更好地利用内存,更方便复制和移动。 该程序实现tensorflow首先读取CIFAR-10的二进制数据,然后将其保存成tfrecords格式的...
tensorflow读取SVHN数据集转为TFrecords格式
       这里默认将python脚本文件和svhn数据集放在同一目录下,FLAGS.directory参数可以指定数据集的目录,由于svhn没有validation数据集,因此将train分割一部分出来作为validation。 注释:num_sample_size默认为10000,训练的样本数可以自己设,这里我设置20000,前15000作为训练,后5000作为验证   import...
【TensorFlow】制作TFrecords中的问题
问题 项目中需要把每张图片的标记向量存入TFrecords文件,参考了图片的存储方法,但会报错,经过几个小时的折腾才发现问题在哪里(汗颜) 代码 tfrecords_filename = './train2.tfrecords' writer = tf.python_io.TFRecordWriter(tfrecords_filename) #重点在于指定整数的类型 im...
TensorFlow之tfrecords文件详细教程
  欢迎关注“勇敢AI”公众号,更多python学习、数据分析、机器学习、深度学习原创文章与大家分享,还有更多电子资源、教程、数据集下载。勇敢AI,一个专注于人工智能AI的公众号。 ================================================================================== 全文摘要 当前是数据爆炸的时代,深度...
Tensorflow学习--关于读取tfrecords文件时的报错
学习tensorlow中遇到的问题 报错:OutOfRangeError (see above for traceback): RandomShuffleQueue ‘_2_shuffle_batch/random_shuffle_queue’ is closed and has insufficient elements (requested 1, current size 0) [[Node:...
有关于tensorflow的.TFRecords 文件怎么样来生成和读取操作
import os import tensorflow as tf from PIL import Image # 注意Image,后面会用到 import matplotlib as plt cwd = os.getcwd() cwd = cwd + '\\17flowers\jpg\\' classes = {'daffodil', 'snowdrop', 'lilyvalley', ...
tensorflow读取tfRecords文件,可批量读取,双输入
保存 import glob import cv2 import numpy as np import tensorflow as tf import sys # A function to Load images def load_image(addr): # read an image and resize to (224, 224) # cv2 load image...
TFRecords 文件的生成和读取
TensorFlow提供了TFRecords的格式来统一存储数据,理论上,TFRecords可以存储任何形式的数据。     TFRecords文件中的数据都是通过tf.train.Example Protocol Buffer的格式存储的。以下的代码给出了tf.train.Example的定义。 message Example { Features features = 1; };
TFRecords文件的创建与读取
一 TFRecords文件 TFRecords文件是TensorFlow专门的文件存储及读取格式,其中包含了tf.train.Example 协议内存块(protocol buffer),存储特征值与数据内容。通过tf.python_io.TFRecordWrite类,可以获取相应的数据并将其填入到Example协议内存块中,最终生成TFRecords文件。简单地说,tf.train.Examp...
tfrecords读取加载的坑
花了两天时间研究tfrecords,错在最原始的地方是最难找的bug 1.tf.train.string_input_producer([filename],num_epochs=100) num_epochs=None时 默认无限循环 设置num_epochs注意 init_op = tf.group(tf.global_variables_initializer(), tf.local_var...
TFRecords数据的生成与读取
TFRecords 作为TensorFlow标准支持格式,将所有信息(包括图片信息)写入到一个tfrecords文件中,便于管理数据。TFRecords 是二进制文件,有特定的写入和读取方式。需要将下图中的image图片文件和anno.txt文件生成为tfrecords格式。anno.txt中标注数据如下:E:/anno/image/Drivingdecordr_01.jpg 1 648 512 ...
tensorflow:使用tfrecords时的注意事项
使用 tfrecords 时的注意事项 确保 string_input_producer 中的文件名字是正确的。 string_input_producer(file_names, num_epochs=100000, shuffle=True) 当指定 num_epochs 时,在初始化模型参数的时候,一定要 记得 tf.local_variables_initializer().run() ,
【TensorFlow笔记1.3】TFRecords文件读写
概述   除了典型的CSV文件存储方式外,TensorFlow还有专门的文件存储格式:TFRecords文件。 TFRecords文件创建   TFRecords文件一般用来存储特征值和其对应的标签。TFRecords文件中存储的内容是用通过 tf.train.Example 来创建的,我们可以将 tf.train.Example 创建的数据理解为sample(样本)。而 tf.train.Exa...
Tensorflow TFRecords及多线程训练详解
先修知识——protocol buffer protocol buffer的使用 将数据集转化成TFRecords形式 读取数据 TF多线程机制 参考 也可移步my github查看 先修知识——protocol buffer TF框架中多处使用了protocol buffer,protocol buffer全称Google Protocol Buffer,简称Proto...
Tensorflow 训练自己的数据集tfrecords问题
[code=python]rnimport tensorflow as tfrnimport numpy as nprndef read_and_decode(filename):rn filename_queue = tf.train.string_input_producer(['test_train.tfrecords'])rn reader = tf.TFRecordReader()rn _, serialized_example = reader.read(filename_queue) rn features = tf.parse_single_example(rn serialized_example,rn features=rn 'label': tf.FixedLenFeature([], tf.int64),rn 'img_raw' : tf.FixedLenFeature([], tf.string),rn rn )rnrn img = tf.decode_raw(features['img_raw'], tf.uint8)rn img = tf.reshape(img, [28, 28, 3])rn img = tf.cast(img, tf.float32) * (1./ 255) - 0.5rn label = tf.cast(features['label'], tf.int32)rn return img, labelrnrnimg, label = read_and_decode("test_train.tfrecords")rnrnimg_batch, label_batch = tf.train.shuffle_batch([img, label],rn batch_size=100, capacity=2000,rn min_after_dequeue=1000)rnx = tf.placeholder("float",[None,784])rnrnw = tf.Variable(tf.zeros([784,10]))rnb = tf.Variable(tf.zeros([10]))rnrny = tf.nn.softmax(tf.matmul(x,w)+b)rnrny_ = tf.placeholder("float",[None, 10])rncross_entropy = -tf.reduce_sum(y_*tf.log(y))rnrntrain_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)rnrninit = tf.initialize_all_variables()rnsess = tf.Session()rnsess.run(init)rnrnimg_batch, label_batch = tf.train.shuffle_batch([img, label],rn batch_size=100, capacity=2000,rn min_after_dequeue=1000)rnthreads = tf.train.start_queue_runners(sess=sess)rnfor i in range(1000):rn img_xs,label_xs = sess.run([img_batch,label_batch])rn sess.run(train_step, feed_dict=x: img_xs,y_:label_xs)rn[/code]rn按照博客上softmax实现MNIST数据集的例子改的 运行时出现rnValueError: Cannot feed value of shape (100, 28, 28, 3) for Tensor u'Placeholder:0', which has shape '(?, 784)'rn这样的错误 不知道该怎么修改
Tensorflow实现性别年龄检测项目——TFRecords文件的读取与训练
1、TFReords文件的读取代码 论文中对训练集合的图像进行了随机裁剪、亮度变化、以及对比度随机调整,同时也对数据进行了规范化处理,这样的预处理都增加了模型的鲁棒性,更加切合实际情况。 设备配置:显卡为GTX1050Ti,Anaconda3.5+python3.6.5+Tensorflow-gpu1.8.0 1.1、预处理图像的代码: # 对训练/验证的图片进行处理——修剪、dtype...
《TensorFlow深度学习应用实践》学习笔记之TFRecords文件的创建和读取
TFRecords是TensorFlow专用的数据文件格式。其中包含tf.train.Example协议内存块(protocol buffer),这是包含特征值和数据内容的一种数据格式。通过tf.python.io.TFRecordWriter类,可以获取相应的数据并将其填入到Example协议内存块中,最终生成TFRecords文件。 任何Feature中包含着FloatList,或者Byte...
TensorFlow基础5:TFRecords文件的存储与读取讲解及代码实现
TensorFlow之TFRecords文件的存储与读取讲解及代码实现
深度学习tensorflow实战笔记(2)图像转换成tfrecords和读取
     上一篇博客介绍了如何把自己的一般数据放进去txt文件并读取训练全连接神经网络(多层感知机),但是如何把自己的图像数据投入到神经网络中做训练呢,当然,可以把图像写入到txt文件中,然后做reshape,这种方法效率太低,操作复杂,并且内存占用率太高。所以本篇博客介绍如何把自己的图像数据转成tensorflow平台标注的tfrecords格式,并读取tfrecords数据。下一篇博客介绍如何...
Tensorflow基础:TFRecords的扩展应用-将图片存储到TFRecords文件中,并从中读取
这是对上一篇文章的应用,内容相似,不多说了,直接上代码。 一、存储 图片文件存储结构: #!/usr/bin/env python # -*- coding:utf-8 -*- # author:Dr.Shang """ 使用每个图片的文件名作为标签 """ import os import tensorflow as tf from PIL import Image path = '...
TFRecords数据格式的制作、读取及解析
TFRecords 是tensorflow使用的一种二进制数据格式,它能更好的利用内存,更方便复制和移动,并且不需要单独的标签文件。使用框架定义的数据格式好处是有强大的框架支持,例如封装了数据解析、多线程等操作, 使用起来很方便。  TFRecords文件包含了tf.train.Example 协议内存块(protocol buffer)(协议内存块包含了字段 Features)。我们可以写一段
TensorFlow学习笔记(二) Tfrecords的基本技巧
显示如何将数据集转换为.tfrecords文件,然后用作计算图片的一部分介绍之前在本次练习中,使用到了skimage.oi 模块,要想用这个模块需要 scikit-image ,在安装scikit-image之前要先暗转mlk以及numpy。 直接pip install安装mlk以及numpy,但是scikit-image模块可能会安装不上,这就需要到官网下载www.lfd.uci.edu/~g...
Tensorflow构建自己的图片数据集TFrecords
:C/C++ 图像二进制存储与读取中,已经讲解了如何利用C/C++的方法存储与读取二进制图像文件,本文继续讲述如何根据CIFAR-10的格式制作自己的数据集。 所述博文与代码均已同步至GitHub 说明一下,这是一篇在window下操作的,换到ubuntu下请各位自行解决,博客质量是不错的,自己制作很不错。 前一篇博客:C/C++ 图像二进制存储与读取中,已经讲解了如何利用C/C++的
Tensorflow之构建自己的图片数据集TFrecords(精)
用了这么久的tensorflow,例子跑了N多便,基本流程是清楚了。但是自己独立做一个小例子各种问题都来了。如自己图片数据集怎么做?说句老实话,tensorflow真是烦,管方文档教程上老拿MNIST和cifar_10这种做好的数据集说事,对于我们这些初学者,完全不知道图片该如何输入。今天给大家分享我的Tensorflow制作数据集的学习历程。 流程是:制作数据集—读取数据集—-加入队列
Tensorflow之构建自己的图片数据集TFrecords(一)
    接触Tensorflow一个月以来,总算有点感觉。最近一边查文档一边自己摸索,利用Tensorflow构建了自己的图片数据集TFrecords。接下来,我将步骤及用到的相关知识一一记录下来,望大家指点。    用到的原始数据形式截图如下:(用的是fgvc-aircraft-2013b数据集)    制作这个数据集我分成了两步:        第一步:将图片按照给定txt里面的标签复制到指定...
Tensorflow数据读取机制及tfrecords高效读取数据
转载https://blog.csdn.net/shenziheng1/article/details/84960746
关于tfrecords的一点补充
        昨天写完博客(点击打开链接)然后又发现一些问题,就是关于tf.VarLenFeature()的,然后解决了上一篇遗留的问题。首先说一下上一篇提到要resize的问题,原因竟然是因为tf.VarLenFeature()这个函数,下面会说一下:        一般来说,tf.VarLenFeature()这个函数是用来处理稀疏张量的,具体介绍可以看官网,但是当生成tfrecords时,...
【TensorFlow】将数据集保存为TFRecords格式的文件
目录 tf.python_io介绍 tf.train.Example介绍 TFRecords是TensorFlow官方推荐的存储数据的格式,方便对数据存储转移以及操作。 一个TFRecords文件包含一个带有CRC散列的字符串序列,其存储格式有如下四种: uint64 length uint32 masked_crc32_of_length byte data[length] ui...
Tensorflow生成自己的图片数据集TFrecords
Tensorflow生成自己的图片数据集TFrecordstrain.txt保存图片的路径和标签信息test_image/dog/1.jpg 0test_image/dog/2.jpg 0test_image/dog/3.jpg 0test_image/dog/4.jpg 0test_image/cat/1.jpg 1test_image/cat/2.jpg 1test_image/cat/3.j...
tensorflow官网Cifar-10改为自己的TFRecords数据集
已经改完了,中间有些过程记得比较模糊,能想起哪些就记下来哪些吧。 官网Cifar-10都是已经下载好的数据集,所以一般是以bin或者压缩文件的形式存在,这一点可以在cifar10_train文件的最后一段main函数中cifar10.maybe_download_and_extract()体现,但是我们在训练过程中不会再去把自己的数据集压缩成文件再解压训练,都是直接生成TFRecor
利用Tensorflow构建自己的图片数据集TFrecords
相信很多初学者和我一样,虽然用了那么久的tensorflow,也尝试了很多的实例,但那些实例基本都是直接利用官方文档现成的MNIST和cifar_10数据库,而一旦需要自己构建数据集时,完全不知道该如何制作并输入自己改的数据。今天给大家分享我的Tensorflow制作数据集的学习历程。 TensorFlow提供了标准的TFRecord 格式,而关于 tensorflow 读取数据, 官网也提供了3
Tensorflow之构建自己的图片数据集TFrecords(二)
    分类好了图片,接下来制作成Tfrecord格式。    先贴代码:import tensorflow as tf from PIL import Image import os cwd = os.getcwd() root = cwd+"./images_variant_trainval" TFwriter = tf.python_io.TFRecordWriter("./images_...
Tensorflow之构建自己的图片数据集TFrecords
学习谷歌的深度学习终于有点眉目了,给大家分享我的Tensorflow学习历程。    tensorflow的官方中文文档比较生涩,数据集一直采用的MNIST二进制数据集。并没有过多讲述怎么构建自己的图片数据集tfrecords。    先贴我的转化代码将图片文件夹下的图片转存tfrecords的数据集。   ##########################################
TensorFlow .tfrecords训练文件生成、使用
.tfrecords训练文件的生成 #-*- coding:utf-8 -*- import os import tensorflow as tf import matplotlib.pyplot as plt import numpy as np import cv2 def extract_image(filename, resize_height, resize_width):
TensorFLow 不同大小图片的TFrecords存取
全部存入一个TFrecords文件,然后按照batch_size读取。 不多写了,直接贴代码。
关于python TensorFlow读取路径的问题
1、路径读取Python的路径读取满满的坑啊啊。很多次都是因为这个而运行错误。2、绝对路径比如需要读取MNIST_data里边的文件,使用绝对路径input_data.read_data_sets(r"G:\MNIST_data", one_hot=True) 3、相对路径如果当前的*.py已经在G: 使用相对路径 mnist = input_data.read_data_sets("MNIST_d
如何使用tf.data读取tfrecords数据集2
在检查完了数据是否一样后就要开始转图片格式,其实不一定要这一步,但是我怕数据的类型不同影响数据集的效果。 import os import tensorflow as tf from PIL import Image import PIL import matplotlib.pyplot as plt import numpy as np from scipy.misc import imre...
TFRecords文件的生成和读取(样例实现)
TFRecords文件的生成和读取(样例实现)
读取图片,并生成tfrecords文件
通过pillow的image直接读取图像,并用numpy转化图像为numpy数组,保存到tfrecords文件中,方便快速
如何使用tf.data读取tfrecords数据集
tfrecords有一个问题就是如果数据集图片数量太大了,使用传统的方法tf.train.string_input_producer,就会报OutOfRangeError这个错误,至今我不知道怎么解决,找了无数方法也不知道怎么解决,不过引起的原因大部分是因为数据格式不一致,比如图片有一部分unit8的灰度图,但是你其实在制作RGB三通道的数据集,这样图片格式不一致就会报错,具体原因可以看我其他博客...
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表