11-1 tfrecodertest
利用slim代码库里的函数读取TFRecord格式的数据并显示出来。
准备:
1.数据集下载:
http://download.tensorflow.org/example_images/flower_photos.tgz
参考链接:https://bbs.huaweicloud.com/forum/thread-6913-1-1.html
2.数据集解压转换
数据集下载后放在D:\tmp\data\flowers下解压,解压后D:\tmp\data\flowers\flower_photos下包含daisy、dandelion、roses、sunflowers、tulips五个文件夹。
之后将E:\PycharmProjects\test20190702\slim\datasets下的download_and_convert_flowers.py中的第190行注释掉:
# dataset_utils.download_and_uncompress_tarball(_DATA_URL, dataset_dir)
(我将models\reseach下的slim文件夹放在了代码同级目录下)
pycharm打开slim下的download_and_convert_data.py文件,并在主函数最前面添加如下两行代码,并运行代码:
FLAGS.dataset_name = 'flowers'
FLAGS.dataset_dir="D:/tmp/data/flowers"
执行完后可以在D:\tmp\data\flowers下看到生成的TFRecord文件:
改写E:\PycharmProjects\test20190702\slim\datasets下的flowers.py文件:
将flowers.py的第28行
from datasets import dataset_utils
改为
from slim.datasets import dataset_utils
程序:
import tensorflow as tf
from slim.datasets import flowers
import pylab
#1 定义slim数据集,创建provider
slim = tf.contrib.slim
DATA_DIR="D:/tmp/data/flowers"
#选择数据集validation
dataset = flowers.get_split('validation', DATA_DIR)
#创建一个provider
provider = slim.dataset_data_provider.DatasetDataProvider(dataset)
#通过provider的get拿到内容
[image, label] = provider.get(['image', 'label'])
print(image.shape)
#2 启用session读取数据
sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
#启动队列
tf.train.start_queue_runners()
#获取数据
image_batch, label_batch = sess.run([image, label])
#显示
print(label_batch)
pylab.imshow(image_batch)
pylab.show()
结果:
输出为:
(?, ?, 3)
1
10-2 11-2 inception_resnet_v2使用
使用基于ImageNet上训练的inception_resnet_v2模型对任意图片进行识别。