Python深度学习读书笔记(四)(使用VGG16优化kaggle猫狗分类)

预训练网络:之前在大型数据集上训练好,保存好的网络。如果原始数据集足够大,足够通用,则预训练网络学到特征的空间层次结构可以有效的作为通用模型。

使用预训练网络的两种方法:

  1. 特征提取:对于卷积神经网络而言,特征提取就是取出之前训练好网络的卷积基(池化层和卷积层部分)。这部分学到的表示更加通用,更适合重复使用。

         卷积层提取表示的通用性取决于层中模型的深度,更靠近底部的是局部的高度通用的特征图,靠近顶部的是更加抽象的概念。

         在添加密集连接分类器时,有两种添加方式:

             1)先运行数据,将输出结果转为Numpy数组输入密集连接分类器。无法使用数据增强。

             2)直接为提取的卷积基添加添加密集连接分类器,再在完整的网络上训练。代价高,但可以设置数据增强。

from keras.applications import VGG16

#卷积基VGG16实例化
#参数(模型初始化的权重检查点,是否包含密集连接分类器,输入到网络中张量的形状(可选))
conv_base = VGG16(weights='imagenet',include_top=False,input_shape=(150,150,3))

#使用预训练的卷积基提取特征
import os
import numpy as np
from keras.preprocessing.image import ImageDataGenerator

#此处对应笔记(三)中存放复制猫狗数据的根文件路径
base_dir='D:\\jupyter_code\\kaggle\\train1'
train_dir=os.path.join(base_dir,'train')
validation_dir=os.path.join(base_dir,'validation')
test_dir=os.path.join(base_dir,'test')

datagen=Image
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值