实现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,dirs,files in os.walk(dir):for name in files:images.append(os.path.join(root,name))for name in dirs:#以dogs cats文件夹形式读取 temp.append(os.path.join(root,name))labels=[]for one_folder in temp:n_img=len(os.listdir(one_folder))#展开cats或者dogs的图片 letter=one_folder.split('/')[-1]if letter=='cats':labels=np.append(labels,n_img*[0])#np.append拼接 0是cat 1是dog else:labels=np.append(labels,n_img*[1])#打乱 temp=np.array([images,labels])temp=temp.transpose()np.random.shuffle(temp)image_list=list(temp[:,0])label_list=list(temp[:,1])label_list=[int(float(i)) for i in label_list]return image_list,label_list #返回整形特征 def int64_feature(value):return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) #返回bytes特征 def bytes_feature(value):return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value])) def convert_to_tfrecord(image_list,label_list):n_samples=len(label_list)writer = tf.python_io.TFRecordWriter('./data/train/train.tfrecords')print('start transform')for i in range(n_samples):try:img=cv2.imread(image_list[i])img_raw = img.tobytes() # 图片转化成二进制 label=int(label_list[i])example=tf.train.Example(features=tf.train.Features(feature={'label':int64_feature(label), 'image':bytes_feature(img_raw)}))writer.write(example.SerializeToString())except:print(image_list[i])os.remove(image_list[i])writer.close()print('transform end') """ 下面是读取tfrecord和显示图片证明生成的tfrecord正确 """ 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=[227,227,3])#img = tf.cast(img, dtype=tf.float32) * (1.0 / 128) - 0.5 label = tf.cast(features['label'], dtype=tf.int32)return img,label def show():img,label=read_and_decode(filename)img_batch,label_batch=tf.train.shuffle_batch([img,label],batch_size=1, capacity=11,min_after_dequeue=5)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((227,227,3))print(label)cv2.imshow('img',imgcv2)cv2.waitKey()if __name__ == '__main__':# image_list, label_list = deal('./data/train') # convert_to_tfrecord(image_list,label_list) show()
实现TFrecords文件的保存与读取相关推荐
- csv文件的保存与读取
csv文件的保存与读取 import numpy as npimport pandas as pd# 保存数据到csv文件m = np.arange(16).reshape((4,4))data = ...
- TFRecords文件的存储与读取
将cats和dogs两个文件夹各1000张图片存储为:train.tfrecords #将图片文件生成train record import os import tensorflow as tf fr ...
- python:json文件的保存与读取
介绍 json(JavaScript Object Notation, Java 脚本对象表示符)是一种特殊的数据格式,具有以下优点. (1)该数据格式独立于脚本语言(如c++,python,matl ...
- 实例教程三:文件的保存与读取
使用代码嵌入android.os.SystemProperties的方法(转) http://www.eoeandroid.com/thread-206961-1-1.html Android网络连接 ...
- C# 文件的保存与读取
1.保存文件到指定的textBox控件中 StreamWriter sw = new StreamWriter( "D:\\1.txt"); sw.WriteLine(this.t ...
- c#_文件的保存与读取
本博客介绍在当前文件所在目录下创建文件: 1.设置路径 string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"Sa ...
- 自己动手写类似酷狗播放器(5)_文件的保存和读取
对于播放器,我们希望在打开的时候,播放列表存有上一次的歌曲,不必每次去添加,就是通过文件的操作实现的. 这里要实现两个: 1.在播放器打开的时候,能自动加载上一次的歌曲信息进入Listbox,并且更新 ...
- python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解
一.对json文件的读取 data1={"programmers":[{ "firstName": "Brett", "lastN ...
- 【OpenCV 4开发详解】保存和读取XML和YMAL文件
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...
最新文章
- 皮一皮:只恨不为女儿身...
- java keygenerator_spring-cache -KeyGenerator自定义
- 部署SAP HANA之前你需要知道的那些事
- CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
- PHP面向对象分析设计的61条军规
- redis zset转set 反序列化失败_关于Redis中的五种数据结构,要知其然知其所以然...
- python中if name == main_python中if __name__ == '__main__': 的解析
- 7 Object类型
- 如何开启VMware串口
- Logistic回归分类器
- 如何php实现即时到账,paypal即时到账php实现代码-PHPphp技巧
- 浅析 微信公共平台消息 开发原理
- 值得收藏几个Web木马后门查杀扫描工具
- 农场周围的道路c语言编程,[蓝桥杯][2013年第四届真题]农场阳光 (C语言)
- office办公所有版本齐全
- 练习-任意输入n个从小到大的整数的数列,然后输入一个整数插入到数列中,使数列保持从小到大的顺序
- Linux-Logs 查看日志文件
- “Art-Side艺次元空间+”将携日中之间「龙天无界」联手“蒲公英高级文旅”与“馋艺术空间”赋能古镇
- 各类暴力事件频发,究竟是为何?
- 跨平台界面库 linux,超轻量/跨平台UI框架(目前已经支持: Windows, Android, Linux, VR)...