解析TFRecord图像数据

这里提供十个TFRecord数据文件来跑代码,然后解析出来的话每一张都是256*256的灰度图像,都是花。

该数据集包含5个类别的图像数据,压缩包里共有十个TFRecord文件,每个文件包含350个图像信息;

TFRecord文件包含三个字段:

1.‘data’:256*256的tf.float32类型,为二维的训练图像数据;

2.‘label’:1个tf.int64类型,为类别标签,共计5类,数值为1到5;

3.‘id’:1个tf.int64类型,为数据的计数number;

到这儿去下载TFRecord数据文件

#encoding: utf-8
# data_parse.py
# 运行train.py前先运行此代码文件,将原始数据置于和本代码文件同路径下

import os
import tensorflow as tf
from PIL import Image
import numpy as np

for i in range(5):
    if not os.path.exists(os.getcwd()+"/flower_data/"+str(i+1)):
        os.makedirs(os.getcwd()+"/flower_data/"+str(i+1))
    
for num in range(10):

    reader=tf.TFRecordReader()
    filename_queue=tf.train.string_input_producer(["TFcodeX_"+str(num+1)+".tfrecord"])

    _,serialized_example=reader.read(filename_queue)

    features=tf.parse_single_example(serialized_example,features={
    'data' :tf.FixedLenFeature([65536],tf.float32),
    'label' :tf.FixedLenFeature([1],tf.int64),
    'id' :tf.FixedLenFeature([1],tf.int64)})

    image_tensor=features['data']
    label_tensor=features['label']
    ID_tensor=features['id']

    with tf.Session() as sess:
        coord=tf.train.Coordinator()
        threads=tf.train.start_queue_runners(sess=sess,coord=coord)

        for i in range(350):
            im,label,ID=sess.run([image_tensor,label_tensor,ID_tensor])
            im=im.reshape(256,256)
            im = (im+1)*255/2
            new_im = Image.fromarray(np.uint8(im))
            if label==1:
                new_im.save("flower_data/1/data_"+str(ID)+"_"+str(label)+".jpg")
            elif label==2:
                new_im.save("flower_data/2/data_"+str(ID)+"_"+str(label)+".jpg")
            elif label==3:
                new_im.save("flower_data/3/data_"+str(ID)+"_"+str(label)+".jpg")
            elif label==4:
                new_im.save("flower_data/4/data_"+str(ID)+"_"+str(label)+".jpg")
            else:  
                new_im.save("flower_data/5/data_"+str(ID)+"_"+str(label)+".jpg")

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值