Tensorflow实现猫狗大战AlexNet

此博客介绍利用TensorFlow实现VGG16,针对大数据集转换为TFRecords格式的问题,提出图片地址数据集转换为TensorFlow专用格式的方法。还阐述了项目架构、文件说明、训练过程,给出数据集和源码地址,并为读者提供练习建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一篇博客利用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. 训练过程

  1. 先运行 pre.py 文件,将训练集图片 resize 成同样大小。
  2. 运行 create_and_read_TFRecord2.py,将图按类别分类(便于后面打标签与分batch)。
  3. 再运行training.py进行训练。
  4. 训练2000轮结果,一般在1500轮收敛。
    在这里插入图片描述

4. 项目源码

https://github.com/dhuQChen/AlexNet

作为练习,读者可以:

  1. 使用BN正则化处理(注意:BN的位置应在Relu之前;衰退率decay的大小应合适;is_training训练时设置为True,评估时设置为False,否则会导致预测为同一类别。)
  2. 对源码按照上一篇博客代码组织架构对本案例代码进行模块化。
  3. 对17 Flowers数据集使用AlexNet进行分类。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值