基于keras的图像分类CNN模型的搭建以及可视化(附详细代码)

基于keras的图像分类CNN模型的搭建以及可视化

本文借助keras实现了热图像的分类模型的搭建,以及可视化的工作。本文主要由以下内容组成。

  • Keras模型介绍
  • CNN模型搭建
  • 模型可视化

Keras模型介绍

  1. 简介

Keras 是 Google 的一位工程师François Chollet 开发的一个框架,能够有效地利用TensorFlow进行开发。keras之所以流行的原因,我在之前的博客已经说明过了:轻量级和快速开发,并且日益成为一种标准框架。(对于深度学习方面是小白的同学,keras不要太友好啊。搭建模型的感觉就像在搭建积木。当然掌握必要的深度学习方面的数学知识是非常必要的。)
keras的核心数据结构就是模型。模型是用来组织网络层的方式。总共有两种模型。

  1. Sequential 模型

  2. Model 模型
    我使用的是Sequential 模型(这种模型是一系列网络层按照顺序构成的栈,是单输入单输出的结构层与层之间只有相邻的关系,如果你需要构建更复杂的模型则要用Model模型) 。

  3. 安装


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
</
  • 16
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 76
    评论
Python是一种高级编程语言,Keras是一个用于构建神经网络模型的深度学习库,CNN代表卷积神经网络,LSTM代表长短期记忆。Python的流行性使得它成为使用Keras库构建神经网络模型的理想选择。 卷积神经网络(CNN)是一种前馈神经网络,常用于计算机觉任务。其核心思想是通过卷积运算来提取图像的特征。CNN图像识别、物体检测和语义分割等任务中表现出色。 长短期记忆(LSTM)是一种适用于处理序列数据的循环神经网络(RNN)的特殊类型。与普通的RNN相比,LSTM能够更好地捕捉到长期依赖关系。LSTM通过控制记忆单元来处理序列中的信息,对于许多自然语言处理任务,如语言建模和机器翻译,LSTM是一个非常强大的工具。 在使用Keras库时,借助Python的灵活性和易用性,我们可以轻松地利用CNN和LSTM来构建复杂的深度学习模型Keras库提供了丰富的高级API和多种预训练模型,可以帮助我们快速搭建和训练模型。 例如,我们可以使用Keras库中的layers模块来创建CNN模型的卷积层和池层,然后使用LSTM层来处理时序数据。在构建模型时,我们可以选择性地添加Batch Normalization层或Dropout层来提高模型的泛能力。 使用Keras库可以进行模型的编译、训练和评估等操作,还可以进行模型的保存和加载。同时,Keras库还提供了方便的可工具,如TensorBoard,可以帮助我们更好地理解和分析模型的结构和性能。 综上所述,Python、KerasCNN和LSTM是一组强大的工具和技术,可以用于构建和训练复杂的深度学习模型,解决图像识别、自然语言处理和其他各种任务。
评论 76
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值