卷积神经网络图像分类
本次实验将完成以下任务:
- 按照 python笔记本深度学习,利用TensorFlow和Keras,自己搭建卷积神经网络完成狗猫数据集的分类实验;将关键步骤用汉语注释出来。解释什么是overfit(过拟合)?什么是数据增强?如果单独只做数据增强,精确率提高了多少?然后再添加的dropout层,是什么实际效果?
- 用Vgg19网络模型完成狗猫分类,写出实验结果;
1 理解卷积神经网络
1.1 搭建环境
首先,检查一下anaconda的版本号,随后创建名为tensorflow的conda环境
conda --version //检查Anaconda版本号(安装失败则会提示)
conda create -n tensorflow pip python=3.6 //创建名为tensorflow的conda环境
创建好后,输入activate tensorflow
激活环境,如果出现前缀则激活成功
在进入环境的条件下下载Tensorflow的纯CPU版
pip install --ignore-installed --upgrade tensorflow
退出后查看环境,能够看到tensorflow就算成功
安装keras
pip install keras
将环境改为刚才创建的tensorflow,再安装一个jupyter(需要一点时间)
PS:可以在刚才的控制台中添加如下库,添加jupyter_contrib_nbextensions插件
功能:自动补全代码功能+pep8+字体大小+代码行号+拼写检查+目录索引
等功能
pip install jupyter_contrib_nbextensions -i https://pypi.douban.com/simple/
jupyter contrib nbextension install --user --skip-running-check
勾了一个hinterland,代码自动补全
1.2 猫狗分析实例
回归题目,新建一个Python3后,引入keras包,查看版本(主要看是否下载成功)
添加如下代码(注意自己训练图片的地址和创建文件夹的地址)
import os, shutil #复制文件
# 原始目录所在的路径
# 数据集未压缩
original_dataset_dir = 'D:\\QQ\\kaggle_Dog&Cat\\train'
# The directory where we will
# store our smaller dataset
base_dir = 'D:\QQ\kaggle_Dog&Cat\\find_cats_and_dogs'
os.mkdir(base_dir)
# # 训练、验证、测试数据集的目录
train_dir = os.path.join(base_dir, 'train')
os.mkdir(train_dir)
validation_dir