用keras框训练猫狗分类并进行验证
先看一下训练后的效果

本次训练猫狗分类用了vgg16用作特征提取的模型,训练效果较自己搭建组合的普通模型要精准很多,当然所耗时长也会长很多(所以,我电脑没有GPU,我为什么要学深度学习,就这么简单的二分类问题,从昨晚11点一直训练到下午四点,简直不像话)
对比一下用自己搭建的普通模型的效果:

(是不是很瞎QAQ)
让我们来看一下代码
1)首先引入VGG16模型,看这句语言就在.keras文件下的applications里,如果没有的话>> 链接:https://pan.baidu.com/s/1iXqWbzrcBTraQ2JIrL-CkA
提取码:mmre
#将VGG16卷积基实例化
from keras.applications import VGG16
conv_base = VGG16(weights='imagenet', include_top=False, input_shape=(150, 150, 3))
2)创建数据集,猫猫和狗狗的数据集在此>> 链接:https://pan.baidu.com/s/1o4TQSOAfkrzvZLxRIGpR9g
提取码:38da
import os,shutil
oirginal_dataset_dir='C:/Users/45005/.keras/datasets/kaggle_original_data/train'
base_dir='C:/Users/45005/.keras/datasets/kaggle_original_data/test2'
os.mkdir(base_dir)#创建文件夹C:/Users/45005/.keras/datasets/kaggle_original_data/test2
train_dir=os.path.join(base_dir,'train')#分别对应划分后的训练,验证和测试的目录
#os.mkdir(train_dir)
validation_dir=os.path.join(base_dir,'validation')
#os.mkdir(validation_dir)
test_dir=os.path.join(base_dir,'test')
#os.mkdir(test_dir)
#训练目录
train_cats_dir=os.path.join(train_dir,'cats')#猫的训练图像目录
#os.mkdir(train_cats_dir)
train_dogs_dir=os.path.join(train_dir,'dogs')#狗的训练图像目录
#os.mkdir(train_dogs_dir)
#验证目录
validation_cats_dir=os.path.join(validation_dir,'cats')#猫的验证图像目录
#os.mkdir(validation_cats_dir)
validation_dogs_dir=os.path.join(validation_dir,'dogs')#狗的验证图像目录
#os.mkdir(validation_dogs_dir)
#测试目录
test_cats_dir=os.path.join(test_dir,'cats')#猫的测试图像目录
#os.mkdir(test_cats_dir)
test_dogs_dir=os.path.join(test_dir,'dogs')#狗的测试图像目录
#os.mkdir(test_dogs_dir)
#将前1000张的猫的图像复制到train_cats_dir中
fnames=['cat.{}.jpg'.format(i) for i in range(1000)]
for fname in fnames:
src=os.path.join(oirginal_dataset_dir,fname)
dst=os.path.join(train_cats_dir,fname)
shutil.copyfile(src,dst)
#将接下来500张猫复制到validation_cat目录中
fnames=['cat.{}.jpg'.format(i) for i in range(1000,1500)]
for fname in fnames:
src=os.path.join(oirginal_dataset_dir,fname)
dst=os.path.join(validation_cats_dir,fname)
shutil.copyfile(src,dst)
#将接下来500张猫复制到test_cat中
fnames=['cat.{}.jpg'.format(i) for i in range(1500,2000)]
for fname in fnames:
src=os.path.j

本文介绍了使用预训练的VGG16模型进行猫狗分类任务的训练过程,通过数据增强提高模型的可靠性。训练结果显示,VGG16模型相比自建模型在精度上有显著优势,但训练时间较长。详细步骤包括数据集创建、模型构建、数据增强、模型编译、训练及评估。
最低0.47元/天 解锁文章
579

被折叠的 条评论
为什么被折叠?



