机器学习-初级进阶(深度学习-卷积神经网络)
一、卷积神经网络
卷积神经网络介绍
学习资料
卷积神经网络流程分解
(1)卷积:
卷积后的几种照片展示图:
(2)最大池化
(3)扁平化
(4)全连接层
线性整流激活层
线性整流层资料
总结
代码实现
数据集:
测试集和训练集中是包含小猫,小狗的照片,训练集中小猫小狗图片各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%,可见训练集对数据过渡拟合,测试、训练结果相差太大,对于图像处理来说,这结果不是很好
机器学习-初级进阶(深度学习-卷积神经网络)相关推荐
- 毕设 深度学习卷积神经网络的花卉识别
文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...
- 毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉
文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...
- 深度学习 卷积神经网络-Pytorch手写数字识别
深度学习 卷积神经网络-Pytorch手写数字识别 一.前言 二.代码实现 2.1 引入依赖库 2.2 加载数据 2.3 数据分割 2.4 构造数据 2.5 迭代训练 三.测试数据 四.参考资料 一. ...
- 深度学习 卷积神经网络原理
深度学习 卷积神经网络原理 一.前言 二.全连接层的局限性 三.卷积层 3.1 如何进行卷积运算? 3.2 偏置 3.3 填充 3.4 步长 3.5 卷积运算是如何保留图片特征的? 3.6 三维卷积 ...
- 深度学习-卷积神经网络初识-1
卷积神经网络 技交部 潘震宇 一.计算机视觉 在计算机视觉领域中,存在着许多问题,各类领域基本都包含着这俩种基础问题: 1. 图像分类 2. 目标检测 除上述之外,最近有一种新颖的技术,也出现在大众的 ...
- 深度学习——卷积神经网络的应用——目标检测
一.理论部分介绍 1. 目标定位和特征点检测 图片检测问题: 分类问题:判断图中是否为汽车: 目标定位:判断是否为汽车,并确定具体位置: 目标检测:检测不同物体并定位. 目标分类和定位: 对于目标定位 ...
- 深度学习卷积神经网络大事件一览
转载自:http://blog.csdn.net/u013088062/article/details/51118744 深度学习(DeepLearning)尤其是卷积神经网络(CNN)作为近几年来模 ...
- 深度学习---卷积神经网络(CNN)
文章目录 1. 什么是深度学习? 2. 深度学习框架 2.1 卷积神经网络(CNN) 2.1.1 引子 :边界检测 2.1.2 CNN的基本概念 2.1.3 CNN的结构组成 2.1.4 卷积神经网络 ...
- 深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在大型图像处理方面有出色的表现,目前已经被大范围使用到图像分类.定位等领域中.相比于其他神经网 ...
最新文章
- R语言ggplot2可视化分面直方图(faceting histogram)、使用gghighlight包突出高亮突出每个分面中的一个分组的直方图
- 算法导论 第二部分——排序和顺序统计量
- POJ-2531 Network Saboteur 枚举||随机化
- mysql relaylog 慢_MySQL 主从同步延迟的原因及解决办法
- 又拍云刘平阳,理性竞争下的技术品牌提升之道
- Eclipse --Type /com.xx.app/gen already exists but is not a source folde解决方案
- 双11期间,请关爱程序员!
- Javascript设计模式与开发实践读书笔记(1-3章)
- 又见高铁霸座,占座者嚣张称“就不让”!结果舒适…
- s7填表指令att_第五章 S7-200 指令系统.ppt
- 人工智能目标检测模型总结(二)——目标检测two-stage模型汇总
- bzoj 1045: [HAOI2008]糖果传递
- Tasker to stop Poweramp control for the headset while there is an incoming SMS - frozen
- OpenSSL密码库算法笔记——第6.5章 密钥协商
- linux 桌面版 安装php,Linux_图解红旗Linux 4.0桌面系统的安装,一、安装前准备1.官方 - phpStudy...
- unity 暂停按钮_Unity VideoPlayer教程之 视频播放暂停切换
- 气象大数据平台(天擎)数据读取方法(python)(地面资料下载)
- 远程电脑不能复制粘贴
- Fliptile 翻格子游戏
- 嵌入式状态机编程简介
热门文章
- 零基础学ios开发培训要培训多久
- office2016 如何把mathtype添加到office工具栏 解决MathPage.wll或MathType.dll文件找不到问题
- 开发者实践:做一个双人视频社交小游戏,“甩头”才能玩
- @ConditionalOnClass等注解使用
- 每日分享:可以将文字转换成语音的软件有哪些?
- 王垠:如何掌握多种程序语言
- [小技巧]在word中输入11以上带圈数字序号
- dex是什么的缩写_肿瘤药物缩写
- Windows Wce认证过程MS11-080提权使用
- java超类_java超类