TFRecords文件的存储与读取

将cats和dogs两个文件夹各1000张图片存储为:train.tfrecords
#将图片文件生成train record
import os
import tensorflow as tf
from PIL import Image
#生成catsdogsrecord文件
path='./data/train'
filenames=os.listdir(path)
writer=tf.python_io.TFRecordWriter('./data/train/train.tfrecords')
classes=['cats','dogs']#两类
for index,name in enumerate(classes):print(index,name)
#for name in os.listdir(path):
    class_path=path+os.sep+namefor img_name in os.listdir(class_path):img_path=class_path+os.sep+img_nameimg=Image.open(img_path)img=img.resize((500,500))img_raw=img.tobytes()#图片转化成二进制
        example=tf.train.Example(features=tf.train.Features(feature={'label':tf.train.Feature(int64_list=tf.train.Int64List(value=[index])),
            'image':tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_raw]))}))writer.write(example.SerializeToString())

变为

读取过程:

# 读取catsdogstrain.tfrecords文件
import tensorflow as tf
import cv2
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

filename='./data/train/train.tfrecords'
#读取并解析.tfrecords文件
def read_and_decode(filename):filename_queue=tf.train.string_input_producer([filename])# 按队列的形式读取
    reader=tf.TFRecordReader()_,serialized_example=reader.read(filename_queue)#返回文件名和文件
    features=tf.parse_single_example(serialized_example,
                            features={'label':tf.FixedLenFeature([],tf.int64),#与存储的类型一致
                                'image':tf.FixedLenFeature([],tf.string)})img=tf.decode_raw(features['image'],tf.uint8)img=tf.reshape(img,shape=[500,500,3])img = tf.cast(img, dtype=tf.float32) * (1.0 / 128) - 0.5
    label = tf.cast(features['label'], dtype=tf.int32)return img,labelimg,label=read_and_decode(filename)img_batch,label_batch=tf.train.shuffle_batch([img,label],batch_size=1,
                                             capacity=10,min_after_dequeue=1)
init=tf.global_variables_initializer()
with tf.Session() as sess:sess.run(init)threads=tf.train.start_queue_runners(sess=sess)for i in range(10):label=sess.run(label_batch)imgcv2=sess.run(img_batch)imgcv2.resize((500,500,3))print(label)cv2.imshow('img',imgcv2)cv2.waitKey()
按下任意键即可切换图片 共10张是cats,label应该是0

10张打印结果都是0,吻合前面在定义类的时候 0是cats的标签.

,,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《C++ Primer》读书笔记 第三章

1.注意:头文件不应包含using声明。因为头文件的内容会拷贝到所有引用他的文件中去,对于某些程序来说,由于不经意间包含了一些名字,可能会产生名字冲突。2.string类型的读入:用cin读入string,忽略所有的前置…

对比激光SLAM与视觉SLAM:谁会成为未来主流趋势?

来源:智车科技摘要:SLAM(同步定位与地图构建),是指运动物体根据传感器的信息,一边计算自身位置,一边构建环境地图的过程,解决机器人等在未知环境下运动时的定位与地图构建问题。目前…

链表中的指针

中期答辩改在了国庆之后,终于有时间可以看看剑指offer了。在看到单向链表的部分,对指针,尤其是头指针有点疑惑。首先容易理解的是链表的节点是一个结构体,该结构体包含一个数据(一般是int型),还…

实现TFrecords文件的保存与读取

import os import cv2 import numpy as np import tensorflow as tf """ 将train文件夹下的cats和dog文件夹处理成train.tfrecords放在train文件夹里 """ #将图片的路径和对应的标签存储在list中返回 def deal(dir):images []temp []for root,…

工具推荐-css3渐变生成工具

今天工作用到了css3渐变,但是写起来才发现太麻烦了,而却很浪费时间,所以在这里向大家推荐一个在线的css3 渐变生成工具 地址是:http://www.colorzilla.com/gradient-editor/ 这个工具是可视化视图,用起来就和photoshop…

神经网络相关的笔试题目集合(一)

在找工作的过程中发现好多公司没有专门的、传统的图像处理岗位,所以只能参加算法类的笔试甚至AI类的笔试。在AI的笔试中几乎全是关于神经网络的问题,其实也都是很基础的一些问题,如果事先做了准备,可以从容应对。而对于我这种从传…

中美超算“你追我赶” 中国优势可圈可点

来源:新华网摘要:中美超算“你追我赶” 中国优势可圈可点新一期全球超级计算机500强榜单12日在美国达拉斯发布。与半年前的榜单相比,全球格局变化不大,美国在最快超算上…

吴恩达作业1:逻辑回归实现猫的分类

思路:输入样本X与随机初始权重W相乘,利用sigmoid激活函数输出值,对于二分类问题,用交叉熵损失函数来计算损失值,通过交叉熵损失函数利用链式法则求出W和b的偏导,梯度下降更新W和b即可,&#xff…

《转》不要过打折的生活,当你发现这些你有了,说明你开始成熟了

我在一家外企工作的时候,有一天陪女上司上街选购圣诞礼物。当我们拎着大包小包坐下喝咖啡时,女上司问我:“新年要到了,不买点礼物送给家人?”我笑着说:“我爸妈都很节省,只有不乱花钱&#xff0…

双摄与双目视觉

越来越多的手机开始上双摄,首先解释一下双摄的目的,双摄可以达到什么样的效果。首先双摄可以分为两类,一类是利用双摄获得图像中物体到镜头或者焦距的距离,得到景深信息就可以进行后续的3D重建、图像分割、背景虚化等;…

“脑补”的科学依据:眼前的黑不是黑,靠得是你的大脑

一个在眨眼的婴儿 | 图片来源:Leungcho Pan/Shutterstock撰文:Mindy Weisberger来源:科研圈编译:向菲菲人们常说:“别眨眼,精彩稍纵即逝。”但其实在我们眨眼的时候,精彩仍在我们眼前上演。我们…

基于Sql Server 2008的分布式数据库的实践(三)

配置PHP 1.打开PHP配置文件,找到extensionphp_mssql.dll,将前面的注释符号去掉 2.找到mssql.secure_connection,将Off改为On 3.找到com.allow_dcom true,将前面的注释符号去掉 4.下载正确版本的 ntwdblib.dll (2000.80.194.0)&am…

ORB论文研读与代码实现

首先,ORB算法来自于OpenCV Labs,相比于SIFT和SURF,ORB在使用中不必担心专利的问题。但同时ORB在保证了一定性能的条件下做到了高效。在论文《ORB: An efficient alternative to SIFT or SURF》2011中,ORB在特征点检测和描述子生成…

腾讯发布人工智能辅助翻译,致敬人工翻译

来源:腾讯AI实验室11月13日,深圳 - 腾讯AI Lab今日发布了一款AI辅助翻译产品 - “腾讯辅助翻译”(Transmart),可满足用户快速翻译的需求,用AI辅助人工翻译提高效率和质量。该产品采用业内领先的人机交互式机…

吴恩达作业2 利用两层神经网络实现不同颜色点的分类,可更改隐藏层数量

任务:将400个两种颜色的点用背景色分为两类。 前面的还是建议重点学神经网络知识,至于数据集怎么做的后面在深究,首先先看看数据集,代码如下: def load_planar_dataset():np.random.seed(1)m 400 # number of exampl…

linux 学习操作小计

屌丝最近在接触lamp开发 把工作中遇到的 问题和 一些常用的操作记下来。以便以后去翻阅 (1)linux下备份mysql数据库方法 #mysqldump -u root -p dbname > /root/dbname.sql root 和 dbname 分别是 数据库的用户名 和 数据库名称 路径可以自己随…

利用tensorflow构建AlexNet模型,实现小数量级的猫狗分类(只有train)

首先看路径: data文件夹分为,model文件夹,train文件夹和文件夹,model文件夹存放模型文件,train存放cat和dog的两个文件夹图片, validation和train一样。config.py存放配置的一些参数,util.py定…

脑网络的可塑性——随时都在发生

来源:神经科技前沿神经元的突起是神经元胞体的延伸部分,由于形态结构和功能的不同,可分为树突(dendrite)和轴突(axon);树突是从胞体发出的一至多个突起,呈放射状。轴突每个神经元只有一根胞体发出轴突的细胞 质部位多呈…

KAZE论文研读

KAZE是发表在ECCV2012的一种特征点检测算法,相比于SIFT和SURF,KAZE建立的高斯金字塔是非线性的尺度空间,采用加性算子分裂算法(Additive Operator Splitting, AOS)来进行非线性扩散滤波。一个很显著的特点是在模糊图像的同时还能保留边缘细节…

简单的线性模型实现tensorflow权重的生成和调用,并且用类的方式实现参数共享

首先看文件路径,line_regression是总文件夹,model文件夹存放权重文件, global_variable.py写了一句话. save_path./model/weight 权重要存放的路径,以weight命名. lineRegulation_model.py代码 import tensorflow as tf "…