TensorFlow实现VGG16

本文利用TensorFlow实现VGG16,并以17 Flowers(17 Category Flower Dataset)为案例进行实战。

1. 项目架构

TensorFlow实现VGG16_第1张图片
注:所有图片都在jpg文件夹下,删除该文件夹下两个非图片文件。
先看项目架构:
TensorFlow实现VGG16_第2张图片

注:Example文件夹下为测试数据,部分来自于训练集,其余来自于网上。

2. 文件说明

文件 功能
pre.py 将jpg文件下图片按类别分开
loadNpy.py 读取预训练权重(用于查看预训练权重格式)
create_tfrecords.py 将训练数据转换成TFRecords格式
VGG16.py VGG16模型定义
training.py 网络训练过程
test.py 对网络训练结果进行测试

注:学习率为1e-5,否则不会收敛。vgg16.npy文件可以从网上自行获取。

3. 训练过程

  1. 先运行 pre.py 文件,将数据按类别分开,便于生成标签。
  2. 再运行 create_tfrecords.py 文件,生成 train.tfrecords 文件。
  3. 运行training.py进行训练。
  4. 训练500轮结果,一般在200轮收敛。
    TensorFlow实现VGG16_第3张图片TensorFlow实现VGG16_第4张图片

4. 项目源码

https://github.com/dhuQChen/VGG16
vgg16预训练权重链接: https://pan.baidu.com/s/1haAfyxjwsYx-ZGLz7iO5HA 提取码: bgw4

作为练习,读者可以对猫狗大战数据集使用VGG16进行分类。

你可能感兴趣的:(DeepLearning)