基于keras的图像分类CNN模型的搭建以及可视化
本文借助keras实现了热图像的分类模型的搭建,以及可视化的工作。本文主要由以下内容组成。
- Keras模型介绍
- CNN模型搭建
- 模型可视化
Keras模型介绍
- 简介
Keras 是 Google 的一位工程师François Chollet 开发的一个框架,能够有效地利用TensorFlow进行开发。keras之所以流行的原因,我在之前的博客已经说明过了:轻量级和快速开发,并且日益成为一种标准框架。(对于深度学习方面是小白的同学,keras不要太友好啊。搭建模型的感觉就像在搭建积木。当然掌握必要的深度学习方面的数学知识是非常必要的。)
keras的核心数据结构就是模型。模型是用来组织网络层的方式。总共有两种模型。
-
Sequential 模型
-
Model 模型
我使用的是Sequential 模型(这种模型是一系列网络层按照顺序构成的栈,是单输入单输出的结构,层与层之间只有相邻的关系,如果你需要构建更复杂的模型则要用Model模型) 。 -
安装
keras的安装非常简单,你可以安装anaconda,然后再安装keras。直接就是pip install keras
有一个需要注意的地方就是 ,安装好之后,可以选择依赖的后端,在 ~/keras/keras.json
下修改最后一行backend对应的值即可。就是修改下面的这段代码中tensorflow,可以改成theano,其实差别不大。我用的是TensorFlow。
{ "image_dim_ordering": "tf", "epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow" }
使用TensorFlow和theano的区别主要就是变换读取数据尺寸的语句不一样。(之前的博客我也提到过。)
CNN模型搭建
我的模型是由一个人脸识别的案例改过来的,我改了挺长时间的,我也是有事没事,然后就把模型拿出来跑跑,发现哪儿不对劲,就改改,最后到今天,基本都跑通了。
我的模型代码由四个部分代码组成。代码已经上传到了我的**GitHub上了,大家觉得我的这段代码有帮助的话,记得给我的GitHub点个星星, 蟹蟹大噶!**
- read_img.py
- read_data.py
- dataSet.py
- train_model.py
- test_model.py
###read_img.py
这个文件里面呢,主要就是读取文件数据(码的,说了等于没说嘛)。好了,开始讲正题。
先讲这个endwith
的函数
def endwith(s,*endstring):
resultArray = map(s.endswith,endstring)
if True in resultArray:
return True
else:
return False
</