CIF10图像分类准确率提高方法

1、数据增强


# 创建ImageDataGenerator实例
data_generate = ImageDataGenerator(featurewise_center=False,  # 将输入数据的均值设置为0
                                   samplewise_center=False,  # 将每个样本的均值设置为0
                                   featurewise_std_normalization=False,  # 将输入除以数据标准差,逐特征进行
                                   samplewise_std_normalization=False,  # 将每个输出除以其标准差
                                   zca_epsilon=1e-6,  # ZCA白化的epsilon值,默认为1e-6
                                   zca_whitening=False,  # 是否应用ZCA白化
                                   rotation_range=0,  # 随机旋转的度数范围,输入为整数
                                   width_shift_range=0.1,  # 左右平移,输入为浮点数,大于1时输出为像素值
                                   height_shift_range=0.1,  # 上下平移,输入为浮点数,大于1时输出为像素值
                                   shear_range=0.,  # 剪切强度,输入为浮点数
                                   zoom_range=0.1,  # 随机缩放,输入为浮点数
                                   channel_shift_range=0.,  # 随机通道转换范围,输入为浮点数
                                   fill_mode='nearest',  # 输入边界以外点的填充方式,还有constant,reflect,wrap三种填充方式
                                   cval=0.,  # 用于填充的值,当fill_mode='constant'时生效
                                   horizontal_flip=True,  # 随机水平翻转
                                   vertical_flip=False,  # 随机垂直翻转
                                   rescale=None,  # 重随放因子,为None或0时不进行缩放
                                   preprocessing_function=None,  # 应用于每个输入的函数
                                   data_format=None,  # 图像数据格式,默认为channels_last
                                   validation_split=0)

2、批正则化(batch normalization):中文通常翻译为“批归一化”,是神经网络训练中的一种重要技术。它的主要目的是解决神经网络训练过程中的内部协变量偏移(Internal Covariate Shift)问题,通过对每一层神经网络的输入进行归一化处理,使得输入数据的分布更加稳定,从而提高模型的训练速度和精度。

x = keras.layers.BatchNormalization()(x) # 数据归一化

3、自定义学习率衰减

def scheduler(epoch):
    if epoch < epochs * 0.4:
        return learning_rate
    if epoch < epochs * 0.8:
        return learning_rate * 0.1
    return learning_rate * 0.01

 

 不进行数据增强

[0.7586379051208496, 0.7317000031471252]

进行数据增强

    进行数据增强后,测试集准确率降低

二、ResNet18

使用最简单的ResNet18网络进行训练,训练集准确率如下:

测试集loss、acc:  [0.7052783966064453, 0.7954000234603882]

 

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值