Keras图像分类预告

Keras是一个Python编写的深度学习框架,可以用于图像分类,通过设计多层卷积神经网络模型,在对已标注图像进行训练后,可以对判断测试图像类型。

一个基本的图像分类应用包含的模块有:读取图像,模型设计,模型训练,测试图像。准备不同版本的各个模块,可以更方便地在需要时进行组合即可使用。

1.读取图像

图像数据集的保存方式一般是在同一文件夹中有若干对应类型的图像,每个文件夹表示一类图像,训练集和测试集可能分开或者不分开。

使用glob工具可以比较方便地获取目录中所有文件的名称,知道路径之后获取图像信息的方法有很多,运行速度有差别。

数据集大小:大、小。

在图像中获取所需尺寸的图像:随机位置、指定若干位置(所需尺寸比原图大时多种padding方法)、缩放。

数据集扩充:自带的生成器、自定义生成器(多进程)。

2.模型设计

模型的设计通常需要参考已有的模型,可以进行一些修改或者是同时使用多个模型。对于一些比较有名的模型,Keras中提供了相应的预训练模型,将设计好的模型使用ImageNet大型图像数据集进行训练后,得到的模型就是预训练模型,在它的基础上用自己的数据集进行参数的调整,可以用较小的代价得到优秀的图像分类模型。

预训练模型对图像尺寸都有最小值的要求,并且有默认值,常见的方法中模型输入图像的尺寸是固定的。

将多个模型放到一起,组成一个更大的模型,有时候可以取得更好的结果。

3.模型训练

对于同一个模型,使用不同的训练方法得到的结果有所差异,需要设置的有:优化器种类,学习率等优化器参数,训练的终止时刻。

不同的优化器性能不同,应用场景不同,参数设置方法不同,需要根据实际情况进行调整。Keras中提供的常用方法有:ModelCheckpoint,EarlyStopping,LearningRateScheduler,TensorBoard,ReduceLROnPlateau。

4.测试图像

模型的每一轮训练都会产生一个参数文件,通常是选择验证集准确率最高或者损失最小的模型,有时候可以多选几个模型作为参考。

将一幅图像进行某种处理,可以产生多幅图像,将预测结果平均,可能会得到更好的结果。


标签: 图像分类, 预告

添加新评论