Keras猫狗大战五:采用全部数据集训练,精度提高到90%

深度学习严重依赖训练数据量的大小,前面(https://www.cnblogs.com/zhengbiqing/p/11070783.html)只随机抽取猫狗图片各1000、500、200分别作为训练、验证、测试集,即使采用了数据增强,精度只达到83%。

采用kaggle 猫狗数据集全部25000张进行训练学习,随机选取猫狗图片各9000、2250、1250分别作为训练、验证、测试集,进行训练。

训练100次迭代:

history = model.fit_generator(
    train_generator,
    steps_per_epoch=train_generator.samples // batch_size,
    epochs=100,
    validation_data=validation_generator,
    validation_steps=validation_generator.samples // batch_size)
Epoch 1/100
281/281 [==============================] - 140s 498ms/step - loss: 0.6736 - acc: 0.5683 - val_loss: 0.6532 - val_acc: 0.6074
Epoch 2/100
281/281 [==============================] - 74s 262ms/step - loss: 0.6358 - acc: 0.6310 - val_loss: 0.5861 - val_acc: 0.6803
Epoch 3/100
281/281 [==============================] - 73s 261ms/step - loss: 0.6094 - acc: 0.6625 - val_loss: 0.5559 - val_acc: 0.7146
Epoch 4/100
281/281 [==============================] - 73s 261ms/step - loss: 0.5936 - acc: 0.6807 - val_loss: 0.5511 - val_acc: 0.7216
Epoch 5/100
281/281 [==============================] - 73s 260ms/step - loss: 0.5797 - acc: 0.6918 - val_loss: 0.5308 - val_acc: 0.7347
Epoch 6/100
281/281 [==============================] - 73s 261ms/step - loss: 0.5681 - acc: 0.7018 - val_loss: 0.5318 - val_acc: 0.7356......
Epoch 96/100
281/281 [==============================] - 74s 264ms/step - loss: 0.2963 - acc: 0.8717 - val_loss: 0.3118 - val_acc: 0.8614
Epoch 97/100
281/281 [==============================] - 74s 263ms/step - loss: 0.2983 - acc: 0.8726 - val_loss: 0.2581 - val_acc: 0.8862
Epoch 98/100
281/281 [==============================] - 74s 263ms/step - loss: 0.2936 - acc: 0.8781 - val_loss: 0.2546 - val_acc: 0.8922
Epoch 99/100
281/281 [==============================] - 74s 263ms/step - loss: 0.3047 - acc: 0.8711 - val_loss: 0.2548 - val_acc: 0.8884
Epoch 100/100
281/281 [==============================] - 74s 263ms/step - loss: 0.3013 - acc: 0.8744 - val_loss: 0.2745 - val_acc: 0.8848
训练曲线:

用测试集对模型进行测试:

test_generator = test_datagen.flow_from_directory(
    test_dir,
    target_size=(150, 150),
    batch_size=batch_size,
    class_mode=‘binary‘)

test_loss, test_acc = model.evaluate_generator(test_generator, steps=test_generator.samples // batch_size)
print(‘test acc:‘, test_acc)
Found 2500 images belonging to 2 classes.
test acc: 0.9

 混淆矩阵:



原文地址:https://www.cnblogs.com/zhengbiqing/p/11768706.html

时间: 2024-08-30 18:13:49

Keras猫狗大战五:采用全部数据集训练,精度提高到90%的相关文章

利用keras搭建CNN进行mnist数据集分类

当接触深度学习算法的时候,大家都很想自己亲自实践一下这个算法,但是一想到那些复杂的程序,又感觉心里面很累啊,又要学诸如tensorflow.theano这些框架.那么,有没有什么好东西能够帮助我们快速搭建这个算法呢?当然是有咯!,现如今真不缺少造轮子的大神,so,我强烈向大家推荐keras,Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow或Theano.Keras为支持快速实验而生,能够把你的idea迅速转换为结果. 具体keras的安装与使用,请参

使用CNN(convolutional neural nets)检测脸部关键点教程(五):通过前训练(pre-train)训练专项网络

第九部分 训练专项网络 还记得在刚开始的时候我们丢掉的70%的训练数据吗?如果我们想要得到一个在Kaggle排行榜上有竞争力的成绩,那不是一个好主意.在70%的数据中,还有相当多的特征我们没有看到. 所以改变之前只训练一个模型的方式,我们训练几个专项网络,每一个都可以预测不同的目标集合.我们训练一个模型预测left_eye_center和right_eye_center,另一个模型预测nose_tip--:最终,我们有6个模型,使得我们可以完全利用训练数据,希望能够得到更好的预测效果. 这6个专

绘制学习模型的训练损失和验证损失图形、绘制训练精度和验证精度图形

history = model.fit() 绘制训练损失和验证损失 import matplotlib.pyplot as plt loss = history.history['loss'] val_loss = history.history['val_loss'] epochs = range(1, len(loss) + 1) plt.plot(epochs, loss, 'bo', label = 'Training loss') plt.plot(epochs, val_loss,

利用jTessBoxEditor工具进行Tesseract3.02.02样本训练,提高验证码识别率,tesseract训练样本

http://www.bkjia.com/Pythonjc/1131343.html 利用jTessBoxEditor工具进行Tesseract3.02.02样本训练,提高验证码识别率,tesseract训练样本 1.背景 前文已经简要介绍tesseract ocr引擎的安装及基本使用,其中提到使用-l eng参数来限定语言库,可以提高识别准确率及识别效率. 本文将针对某个网站的验证码进行样本训练,形成自己的语言库,来提高验证码识别率. 2.准备工具 tesseract样本训练有一个官方流程说明

java-第五章-使用while循环输出:100,95,90..................

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. java-第五章-使用while循环输出:100,95,90..................

Keras猫狗大战七:resnet50预训练模型迁移学习优化,动态调整学习率,精度提高到96.2%

在https://www.cnblogs.com/zhengbiqing/p/11780161.html中直接在resnet网络的卷积层后添加一层分类层,得到一个最简单的迁移学习模型,得到的结果为95.3%. 这里对最后的分类网络做些优化:用GlobalAveragePooling2D替换Flatten.增加一个密集连接层(同时添加BN.Activation.Dropout): conv_base = ResNet50(weights='imagenet', include_top=False,

tfrecord数据集训练验证-猫狗大战

#!/usr/bin/env python # -*- coding:utf-8 -*- from mk_tfrecord import * #from model import * from inception_v3 import * import numpy as np import os import cv2 os.environ["CUDA_VISIBLE_DEVICES"] = "2" def training(): N_CLASSES = 2 # 分类数

Keras猫狗大战八:resnet50预训练模型迁移学习,图片先做归一化预处理,精度提高到97.5%

在上一篇的基础上,对数据调用keras图片预处理函数preprocess_input做归一化预处理,进行训练. 导入preprocess_input: import os from keras import layers, optimizers, models from keras.applications.resnet50 import ResNet50, preprocess_input from keras.layers import * from keras.models import

从零到一:caffe-windows(CPU)配置与利用mnist数据集训练第一个caffemodel

一.前言 本文会详细地阐述caffe-windows的配置教程.由于博主自己也只是个在校学生,目前也写不了太深入的东西,所以准备从最基础的开始一步步来.个人的计划是分成配置和运行官方教程,利用自己的数据集进行训练和利用caffe来实现别人论文中的模型(目前在尝试的是轻量级的SqueezeNet)三步走.不求深度,但求详细.因为说实话caffe-windows的配置当初花了挺多时间的,目前貌似还真没有从头开始一步步讲起的教程,所以博主就争取试着每一步都讲清楚吧. 这里说些题外话:之所以选择Sque