当前位置:   article > 正文

基于Keras:CIFAR-10-分类_在keras框架下,请采用卷积神经网络对 cifar-10 数据集进行分类,可以采用如下的方

在keras框架下,请采用卷积神经网络对 cifar-10 数据集进行分类,可以采用如下的方

一、概述

  • CIFAR-10是一个比较经典的数据集,主要用于图像分类;
  • 该数据集共有60000张彩色图像,这些图像是32*32,分为10个类,每类6000张图。这里面有50000张用于训练,构成了5个训练批,每一批10000张图;另外10000用于测试,单独构成一批。
  • 测试批的数据里,取自10类中的每一类,每一类随机取1000张。抽剩下的就随机排列组成了训练批,对应的具体类别示例如下所示。在这里插入图片描述

二、基于简单卷积神经网络的CIFAR-10分类

  • 导入数据
    • Keras提供了数据加载的函数: cifar10.load_data(),每次导入数据时,会从内置的网络地址下载数据集到本地。但通常下载缓慢,并不支持断点续传,下载过程中网络稍不稳定中断之后就必须从头开始下载。
    • 因此,可离线下载好数据,再放在特定文件夹下面,具体做法为:

    1.直接下载:http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
    2.将下载下来的文件放到~/.keras/datasets/ 目录下,然后将文件名改名为cifar-10-batches-py.tar.gz ,再次运行代码的时候,则会先检查本地是否存在,存在则使用本地的该数据集,不会再进行下载。

  • 网络结构
32 x 32 32 filter, Size:3 x 3 rate: 0.2 32 filter, Size:3 x 3 rate: 0.2 Size: (2 x 2) 512个神经元+Relu激活 rate: 0.5 10个神经元+softmax激活
输入层 卷积层① Dropout层① 卷积层② Dropout层② (最大)池化层 Flatten 层 全连接层 Dropout层 输出层
  • 完整实现代码
from keras.datasets import cifar10
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Flatten
from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.optimizers import SGD
from keras.constraints import maxnorm
from keras.utils import np_utils
from keras import backend
backend.set_image_data_format('channels_first')


# 设定随机数种子
seed = 7
np.random.seed(seed)


# 导入数据
(x_train, y_train), (x_validation, y_validation) = cifar10.load_data()
x_train = x_train.astype('float32')
x_validation = x_validation.astype('float32')
x_train = x_train/255.0
x_validation = x_validation/255.0

# 进行one-hot编码
y_train = np_utils.to_categorical(y_train)
y_validation = np_utils.to_categorical(y_validation)
num_classes = y_train.shape[1]


# 定义模型创建函数
def create_model(epochs=25):
    model = Sequential()
    model.add(Conv2D(32, (3, 3), input_shape=(3, 32, 32), padding='same', activation='relu', kernel_constraint=maxnorm(3)))
    model.add(Dropout(0.2))
    model.add(Conv2D(32, (3, 3), activation
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/354209
推荐阅读
相关标签
  

闽ICP备14008679号