您的位置:首页 > 其它

使用tfrecord建立自己的数据集——conda

2018-02-27 16:43 387 查看

一、前言:

在学习tensorflow的时候,里面除了具体的项目实践外,还涉及到了创建TFRecord格式的数据集,今天回顾一下这个内容。

单位的机器只有ananconda2的python2.7,下面先贴出用conda创建虚拟环境的相关命令。









conda设置国内镜像

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/[/code] 
conda config --set show_channel_urls yes




安装成功



三、使用tfrecord制作自己的数据集

现在分别利用两类不同的猫数据:英国短毛猫和缅甸猫来做数据,每类都有5个:



① 制作TFRECORD文件

1 先聊一下tfrecord, 这是一种将图像数据和标签放在一起的二进制文件,能更好的利用内存,在tensorflow中快速的复制,移动,读取,存储 等等..

这里注意,tfrecord会根据你选择输入文件的类,自动给每一类打上同样的标签

如在本例中,只有0,1 两类

2 先上“制作TFRecord文件”的代码,注释附详解



tf.train.Example 协议内存块包含了Features字段,通过feature将图片的二进制数据和label进行统一封装, 然后将example协议内存块转化为字符串, tf.python_io.TFRecordWriter 写入到TFRecords文件中。

于是,生成一个cat_train.tfrecords的文件——
cat_train.tfrecords


② 读取TFRECORD文件



这里需要注意的是: feature的属性label和img_raw应该和制作时起的名称一致,返回的img数据和label数据一一对应。返回的img和label是2个tf张量。

③ 显示tfrecord格式的图片

有些时候我们希望检查分类是否有误,或者在之后的网络训练过程中可以监视,输出图片,来观察分类等操作的结果,那么我们就可以session回话中,将tfrecord的图片从流中读取出来,再保存。 紧跟着一开始的代码写:

http://blog.csdn.net/lenbow/article/details/52218551 tensorflow常用一些基本概念与函数





Wait for all the threads to terminate, give them 10s grace period 给每个线程10s的宽限期

coord.join(threads, stop_grace_period_secs=10)

在这里可以看到,图片已经被正确的打上label,没问题。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tensorflow tfrecord