这一篇博客利用TensorFlow实现了VGG16,其中在处理数据的时候将图片数据集转化为TensorFlow专用格式。但是对于某些容量非常庞大、数据量非常多的数据集来说,将其转换为TFRecords格式是一个非常浩大的工程,而且往往由于原始的数据集和转换后的数据集容量过大,使得加载和读取消耗更多的资源,从而引起一些列的问题。
今天介绍另一种数据处理方式:图片地址数据集转换为TensorFlow专用格式,即读取生成batch后的地址。
1. 项目架构
数据集地址:https://www.kaggle.com/c/dogs-vs-cats
数据集分为训练集与测试集,直接解压放到项目中。
先看项目架构:
2. 文件说明
文件 | 功能 |
---|---|
train | 存放训练集图片 |
test1 | 存放测试集图片 |
pre.py | 将训练集图片 resize 成统一大小 |
train_temp | 存放pre.py处理后的统一大小的图片 |
create_and_read_TFRecord2.py | 将数据集按类别分类,将分类好的图片放进 data 文件夹 |
data | 存放分类好的图片,该文件夹下有 cat / dog 两个子文件夹 |
training.py | 网络训练过程 |
test.py | 对网络训练结果进行测试 |
3. 训练过程
- 先运行 pre.py 文件,将训练集图片 resize 成同样大小。
- 运行 create_and_read_TFRecord2.py,将图按类别分类(便于后面打标签与分batch)。
- 再运行training.py进行训练。
- 训练2000轮结果,一般在1500轮收敛。
4. 项目源码
https://github.com/dhuQChen/AlexNet
作为练习,读者可以: