发新帖

请教高手关于TFRcord读写的问题

[复制链接]
975 6

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
先感谢各位大神。本人刚开始学习Tensorflow,写了一段读写TFRcord的代码,挺短,但读出TFReord数据时,只能读出第一个Record,不知道是哪里的问题,请高手帮忙看看,谢谢。
import numpy as np
import pandas as pd
import tensorflow as tf
from PIL import Image

def write_to_tfrecords(tfrecords_filename,num,row,col):
    writer = tf.python_io.TFRecordWriter(tfrecords_filename) # 创建.tfrecord文件,准备写入
    for i in range(num):
        img_raw = np.random.random_integers(0,255,size=(row,col)) # 创建7*30,取值在0-255之间随机数组
        print(img_raw,i)        
        img_raw = img_raw.tostring()
        example = tf.train.Example(features=tf.train.Features(
            feature={
            'label': tf.train.Feature(int64_list = tf.train.Int64List(value=)),     
            'img_raw':tf.train.Feature(bytes_list = tf.train.BytesList(value=[img_raw]))
            }))
        writer.write(example.SerializeToString())
        writer.close()
    print("**************************************write end***********************************************")

def read_from_tfrecord(tfrecords_filename,num,row,col):
    filename_queue = tf.train.string_input_producer([tfrecords_filename],) #读入流中
    reader = tf.TFRecordReader()
    _, serialized_example = reader.read(filename_queue)   #返回文件名和文件
    features = tf.parse_single_example(serialized_example,
                                       features={
                                           'label': tf.FixedLenFeature([], tf.int64),
                                           'img_raw' : tf.FixedLenFeature([], tf.string),
                                       })  #取出包含image和label的feature对象
    image = tf.decode_raw(features['img_raw'],tf.int32)
    image = tf.reshape(image, [row,col])
    label = tf.cast(features['label'], tf.int64)
    with tf.Session() as sess: #开始一个会话
        init_op = tf.global_variables_initializer().run()
        #sess.run(init_op)
        coord=tf.train.Coordinator()
        threads= tf.train.start_queue_runners(sess=sess, coord=coord)
        for i in range(num):
            example, lab = sess.run([image,label])#在会话中取出image和label
            #img=Image.fromarray(example, 'RGB')#这里Image是之前提到的
            #img.save('./'+str(i)+'_''Label_'+str(l)+'.jpg')#存下图片
            print(example, lab)

        coord.request_stop()
        coord.join(threads)

#运行读写程序
if __name__== '__main__':
    tfrecords_filename = 'D:/test/train2.tfrecords'
    n_example = 3  #矩阵的个数
    n_row = 4 #矩阵的行数
    n_col = 3 #矩阵的列数
    write_to_tfrecords(tfrecords_filename,n_example,n_row,n_col)  #10个4X3的矩阵
    read_from_tfrecord(tfrecords_filename,n_example,n_row,n_col)


下面是运行结果:
[[ 23 239 247]
[188 178  57]
[242   1 190]
[ 87 191 106]] 0
[[ 35  41  62]
[161  66 185]
[185  30 221]
[247 141  98]] 1
[[233 208 252]
[181 202 101]
[ 92 229  37]
[190 156  76]] 2
**************************************write end***********************************************
[[ 23 239 247]
[188 178  57]
[242   1 190]
[ 87 191 106]] 0
[[ 23 239 247]
[188 178  57]
[242   1 190]
[ 87 191 106]] 0
[[ 23 239 247]
[188 178  57]
[242   1 190]
[ 87 191 106]] 0
我知道答案 回答被采纳将会获得10 金币 + 5 金币 已有6人回答
本楼点评(1) 收起
  • yunhai_luo报告一下:在tensorflow 1.7.0 (GPU version, Win10)环境下运行结果正常,无法重复你的问题。请问你的运行环境是什么?有没有警告之类的?
    2018-4-30 13:15 回复

精彩评论6

M丶Sulayman  TF豆豆  发表于 2018-4-30 11:01:54 | 显示全部楼层
这个是TF的数据读入么?我也学学,静待大神
本楼点评(0) 收起
M丶Sulayman  TF豆豆  发表于 2018-4-30 11:03:17 | 显示全部楼层
哦哦,对了,你这样发帖有个很大问题......麻烦下次把代码粘进代码链接,这样好看好阅读,别人也好复制给你解答
本楼点评(0) 收起
舟3332  TF芽芽  发表于 2018-4-30 15:42:09 来自手机  | 显示全部楼层
M丶Sulayman 发表于 2018-4-30 11:03
哦哦,对了,你这样发帖有个很大问题......麻烦下次把代码粘进代码链接,这样好看好阅读,别人也好复制给你 ...

同感 +1
本楼点评(0) 收起
M丶Sulayman  TF豆豆  发表于 2018-4-30 22:23:53 | 显示全部楼层
为毛我的PIL包没作用?......
本楼点评(0) 收起
Googler  TF荚荚  发表于 2018-5-15 14:32:53 | 显示全部楼层
你的main里面只调用了一次read啊。
本楼点评(0) 收起
scholar_zry  TF荚荚  发表于 2018-5-20 00:05:38 | 显示全部楼层
       writer.close()
    print("***  

这个地方写错了。。  writer.close() 不能再循环内。 如果在循环内,写了第一个数据就关闭文件了。后面的数据肯定写不了。

另外: 'label': tf.train.Feature(int64_list = tf.train.Int64List(value=)),   

value=   应该改为 value=[i]   

估计这样才是你的本意。
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

主题

帖子

2

积分
快速回复 返回顶部 返回列表