一、卷积神经网络

  1. 卷积神经网络介绍






    学习资料

  2. 卷积神经网络流程分解

    (1)卷积:




    卷积后的几种照片展示图:






    (2)最大池化



    (3)扁平化


    (4)全连接层

  3. 线性整流激活层





    线性整流层资料

  4. 总结

  5. 代码实现

    数据集:

    测试集和训练集中是包含小猫,小狗的照片,训练集中小猫小狗图片各4000张,测试集中小猫小狗图片各1000张
    

    步骤:
    图片转化

    代码:

    from keras.preprocessing.image import ImageDataGenerator  # 对图片进行预处理# 初始化卷积神经网络
    classifier = Sequential()# 添加卷积层
    classifier.add(Convolution2D(filters=32, kernel_size=(3, 3), activation="relu", input_shape=(64, 64, 3)))  # filters:是用多少个特征探测器, kernel_size: 特征探测器用一个多少乘多少的矩阵, activation: 激活函数为线性整流函数,input_shape: (图片长,图片宽,图片三原色)# 添加最大池化层(缩减特征图的大小,降维操作)
    classifier.add(MaxPooling2D(pool_size=(2, 2)))  # pool_size最大池化的窗口大小# #######添加第二个卷积层########
    classifier.add(Convolution2D(filters=32, kernel_size=(3, 3), activation="relu"))  # filters:是用多少个特征探测器, kernel_size: 特征探测器用一个多少乘多少的矩阵, activation: 激活函数为线性整流函数,input_shape: (图片长,图片宽,图片三原色)
    classifier.add(MaxPooling2D(pool_size=(2, 2)))  # pool_size最大池化的窗口大小# 扁平化
    classifier.add(Flatten())# 全连接层(加一层人工神经网络)
    classifier.add(Dense(units=128, activation="relu"))  # 输入层,隐藏层
    classifier.add(Dense(units=1, activation="sigmoid"))  # 输出层,因为输出结果为一个的概率,所以选激活函数为sigmoid# 编译人工神经网络其实就是配置模型参数(优化器<优化算法>, loss function(损失函数),metrics(性能评估器))
    classifier.compile(optimizer="adam", loss="binary_crossentropy", metrics=["accuracy"])# 拟合神经网络
    train_datagen = ImageDataGenerator(rescale=1./225,  # 将图片每个像素点乘 1/255shear_range=0.2,  # 将图像素点左右平移0.2成平行四边形zoom_range=0.2,  # 选取0.2个大小horizontal_flip=True  # 图片进行反转
    )  # 训练集模型test_datagen = ImageDataGenerator(rescale=1./225)  # 测试集模型training_set = test_datagen.flow_from_directory('dataset/training_set',  # 训练集图片存放路径target_size=(64, 64),  # 输入图片的大小batch_size=32,  # 每批图片处理的数量class_mode="binary"  # 因为次测试只有猫和狗两个类,所以采用"binary", 若有多个类的化选择"categorica")test_set = test_datagen.flow_from_directory('dataset/test_set',  # 测试集图片存放路径target_size=(64, 64),  # 输入图片的大小batch_size=32,  # 每批图片处理的数量class_mode="binary"  # 因为次测试只有猫和狗两个类,所以采用"binary", 若有多个类的化选择"categorica"
    )
    print("开始训练了。。。。。。")
    classifier.fit_generator(generator=training_set,  # 拟合数据steps_per_epoch=250,  # 做一期训练的时候总共有多少部 为: 训练集数据个数 / 每批图片处理的数量,若输入更大的数量多出来的图片是由图片生成器产生的epochs=25,  # 训练的期数validation_data=test_set,  # 测试集数据validation_steps=62.5  # 和steps_per_epoch类似为: 测试集数据个数 / 每批图片处理的数量
    )
    

    输出结果:

    ...
    235/250 [===========================>..] - ETA: 3s - loss: 0.0015 - accuracy: 1.0000
    236/250 [===========================>..] - ETA: 2s - loss: 0.0015 - accuracy: 1.0000
    237/250 [===========================>..] - ETA: 2s - loss: 0.0015 - accuracy: 1.0000
    238/250 [===========================>..] - ETA: 2s - loss: 0.0015 - accuracy: 1.0000
    239/250 [===========================>..] - ETA: 2s - loss: 0.0015 - accuracy: 1.0000
    240/250 [===========================>..] - ETA: 2s - loss: 0.0015 - accuracy: 1.0000
    241/250 [===========================>..] - ETA: 1s - loss: 0.0015 - accuracy: 1.0000
    242/250 [============================>.] - ETA: 1s - loss: 0.0015 - accuracy: 1.0000
    243/250 [============================>.] - ETA: 1s - loss: 0.0015 - accuracy: 1.0000
    244/250 [============================>.] - ETA: 1s - loss: 0.0015 - accuracy: 1.0000
    245/250 [============================>.] - ETA: 1s - loss: 0.0015 - accuracy: 1.0000
    246/250 [============================>.] - ETA: 0s - loss: 0.0015 - accuracy: 1.0000
    247/250 [============================>.] - ETA: 0s - loss: 0.0015 - accuracy: 1.0000
    248/250 [============================>.] - ETA: 0s - loss: 0.0015 - accuracy: 1.0000
    249/250 [============================>.] - ETA: 0s - loss: 0.0015 - accuracy: 1.0000
    250/250 [==============================] - 58s 232ms/step - loss: 0.0015 - accuracy: 1.0000 - val_loss: 0.0221 - val_accuracy: 0.7500此结果中训练集准确率达100%,测试集准确率为75%,可见训练集对数据过渡拟合,测试、训练结果相差太大,对于图像处理来说,这结果不是很好
    

机器学习-初级进阶(深度学习-卷积神经网络)相关推荐

  1. 毕设 深度学习卷积神经网络的花卉识别

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  2. 毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  3. 深度学习 卷积神经网络-Pytorch手写数字识别

    深度学习 卷积神经网络-Pytorch手写数字识别 一.前言 二.代码实现 2.1 引入依赖库 2.2 加载数据 2.3 数据分割 2.4 构造数据 2.5 迭代训练 三.测试数据 四.参考资料 一. ...

  4. 深度学习 卷积神经网络原理

    深度学习 卷积神经网络原理 一.前言 二.全连接层的局限性 三.卷积层 3.1 如何进行卷积运算? 3.2 偏置 3.3 填充 3.4 步长 3.5 卷积运算是如何保留图片特征的? 3.6 三维卷积 ...

  5. 深度学习-卷积神经网络初识-1

    卷积神经网络 技交部 潘震宇 一.计算机视觉 在计算机视觉领域中,存在着许多问题,各类领域基本都包含着这俩种基础问题: 1. 图像分类 2. 目标检测 除上述之外,最近有一种新颖的技术,也出现在大众的 ...

  6. 深度学习——卷积神经网络的应用——目标检测

    一.理论部分介绍 1. 目标定位和特征点检测 图片检测问题: 分类问题:判断图中是否为汽车: 目标定位:判断是否为汽车,并确定具体位置: 目标检测:检测不同物体并定位. 目标分类和定位: 对于目标定位 ...

  7. 深度学习卷积神经网络大事件一览

    转载自:http://blog.csdn.net/u013088062/article/details/51118744 深度学习(DeepLearning)尤其是卷积神经网络(CNN)作为近几年来模 ...

  8. 深度学习---卷积神经网络(CNN)

    文章目录 1. 什么是深度学习? 2. 深度学习框架 2.1 卷积神经网络(CNN) 2.1.1 引子 :边界检测 2.1.2 CNN的基本概念 2.1.3 CNN的结构组成 2.1.4 卷积神经网络 ...

  9. 深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

    卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在大型图像处理方面有出色的表现,目前已经被大范围使用到图像分类.定位等领域中.相比于其他神经网 ...

最新文章

  1. R语言ggplot2可视化分面直方图(faceting histogram)、使用gghighlight包突出高亮突出每个分面中的一个分组的直方图
  2. 算法导论 第二部分——排序和顺序统计量
  3. POJ-2531 Network Saboteur 枚举||随机化
  4. mysql relaylog 慢_MySQL 主从同步延迟的原因及解决办法
  5. 又拍云刘平阳,理性竞争下的技术品牌提升之道
  6. Eclipse --Type /com.xx.app/gen already exists but is not a source folde解决方案
  7. 双11期间,请关爱程序员!
  8. Javascript设计模式与开发实践读书笔记(1-3章)
  9. 又见高铁霸座,占座者嚣张称“就不让”!结果舒适…
  10. s7填表指令att_第五章 S7-200 指令系统.ppt
  11. 人工智能目标检测模型总结(二)——目标检测two-stage模型汇总
  12. bzoj 1045: [HAOI2008]糖果传递
  13. Tasker to stop Poweramp control for the headset while there is an incoming SMS - frozen
  14. OpenSSL密码库算法笔记——第6.5章 密钥协商
  15. linux 桌面版 安装php,Linux_图解红旗Linux 4.0桌面系统的安装,一、安装前准备1.官方 - phpStudy...
  16. unity 暂停按钮_Unity VideoPlayer教程之 视频播放暂停切换
  17. 气象大数据平台(天擎)数据读取方法(python)(地面资料下载)
  18. 远程电脑不能复制粘贴
  19. Fliptile 翻格子游戏
  20. 嵌入式状态机编程简介

热门文章

  1. 零基础学ios开发培训要培训多久
  2. office2016 如何把mathtype添加到office工具栏 解决MathPage.wll或MathType.dll文件找不到问题
  3. 开发者实践:做一个双人视频社交小游戏,“甩头”才能玩
  4. @ConditionalOnClass等注解使用
  5. 每日分享:可以将文字转换成语音的软件有哪些?
  6. 王垠:如何掌握多种程序语言
  7. [小技巧]在word中输入11以上带圈数字序号
  8. dex是什么的缩写_肿瘤药物缩写
  9. Windows Wce认证过程MS11-080提权使用
  10. java超类_java超类