深度学习13-cnn介绍(卷积神经网络简介)
文章目录
- 1.CNN解决了什么问题?
- 2.CNN基本原理
- 1)卷积层
- 2)tf自带的2D卷积层
- 3)动手实现卷积层
- Numpy版本
- tf2.0版本
- 4)池化层
- 5)动手实现池化层
- tf自带的MaxPool2D
- Numpy版本池化层
- tf版本池化层
- 6)全连接层
- 3.常用CNN架构
- 4.CNN有哪些实际应用
- 5.总结
1.CNN解决了什么问题?
2.CNN基本原理
1)卷积层
卷积层的前向传播以及计算公式
图片:7*7*3
通道:3个输入通道
卷积核
输出通道高度:(5 - 3 + 2) / 2 + 1 = 3
输出通道宽度:(5 - 3 + 2 ) / 2 + 1 = 3
2)tf自带的2D卷积层
3)动手实现卷积层
Numpy版本
import numpy as npdef conv_numpy(x,w,b,pad,strides):# x表示输入张量,w表示卷积核,b表示偏置,pad表示填充,strides表示步长out = None N,H.W,C = x.shapeF,HH,WW,C = w.shapeX = np.pad(x,((0,0),(pad,pad),(pad,pad),(0,0)),'constant')# 计算输出张量的高度与宽度Hn = 1 + int((H + 2 * pad - HH) / strides[0])Wn = 1 + int((W + 2 * pad - WW) / strides[1])out = np.zeros((N,Hn,Wn,F))for n in range(N):for m in range(F):for i in range(Hn):for j in range(Wn):data = X[n,i * strides[0] : i * strides[0] + HH,j * strides[1] : j * strides[1] + WW, :].reshape(1,-1) # 行filt = w[m].reshape(-1,1) # 列out[n,i,j,m] = data.dot(filt) + b(m)return out
tf2.0版本
def corr2d(x,w,b,pad,strides):# x表示输入张量,w表示卷积核,b表示偏置,pad表示填充,strides表示步长out = None N,H.W,C = tf.shape(x)F,HH,WW,C = tf.shape(w)X = tf.pad(x,((0,0),(pad,pad),(pad,pad),(0,0)),'constant')# 计算输出张量的高度与宽度Hn = 1 + int((H + 2 * pad - HH) / strides[0])Wn = 1 + int((W + 2 * pad - WW) / strides[1])Y = tf.Variable(tf.zeros((N,Hn,Wn,F),dtype = tf.float32))for m in range(F):for i in range(Hn):for j in range(Wn):data = X[:,i * strides[0] : i * 1 + HH,j * strides[1] : j * 1 + WW, :]filt = w[m,:,:,:]Y[:,i,j,m].assign(tf.reducr_sum(tf.multiply(data,filt),axis=(1,2,3)) + b[m])return Y
4)池化层
5)动手实现池化层
tf自带的MaxPool2D
Numpy版本池化层
def max_pool_forward_native(x,pool_size=(2,2),strides=(1,1)):N,H,W,C = x.shapeh_p,w_p = pool_sizeh_s,w_s = stridesHn = 1 + int((H - h_p) / h_s)Wn = 1 + ins((W - w_p) / w_s)out = np.zeros((N,Hn,Wn,C))for i in range(Hn):for j in range(Wn):out[:,i,j,:] = np.max(x[:.i*h_s : i*h_s+h_p, j*w_s: j*w_s+w_p,:],axis=(1,2))return out
tf版本池化层
def pool2d(X, pool_size=(2,2),strides=(1,1)):N,H,W,C = tf.shape(X)p_h,p_w = pool_sizes_h,s_w = stridesY = tf.zeros((N,(H - p_h + 1) // s_h, (W - p_w + 1)// s_w ,C))Y = tf.Variable(Y)for i in tf.range(tf.shape(Y)[1]):for j on tf.range(tf.shape(Y)[2]):Y[:,i,j,:].assign(tf.math.reduce_max(X[:,i*s_h : i*s_h+p_h, j*s_w : j*s_w+p_w,:],axis=(1,2),keepdims=Flase))return Y
6)全连接层
3.常用CNN架构
4.CNN有哪些实际应用
5.总结
深度学习13-cnn介绍(卷积神经网络简介)相关推荐
- 花书+吴恩达深度学习(十三)卷积神经网络 CNN 之运算过程(前向传播、反向传播)
目录 0. 前言 1. 单层卷积网络 2. 各参数维度 3. CNN 前向传播反向传播 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十)卷积神经网络 ...
- 学习笔记:深度学习(3)——卷积神经网络(CNN)理论篇
学习时间:2022.04.10~2022.04.12 文章目录 3. 卷积神经网络CNN 3.1 卷积神经网络的概念 3.1.1 什么是CNN? 3.1.2 为什么要用CNN? 3.1.3 人类的视觉 ...
- 深度学习时间序列预测:卷积神经网络(CNN)算法构建单变量时间序列预测模型预测空气质量(PM2.5)+代码实战
深度学习时间序列预测:卷积神经网络(CNN)算法构建单变量时间序列预测模型预测空气质量(PM2.5)+代码实战 神经网络(neual networks)是人工智能研究领域的一部分,当前最流行的神经网络 ...
- 花书+吴恩达深度学习(十一)卷积神经网络 CNN 之池化层
目录 0. 前言 1. 最大池化(max pooling) 2. 平移不变形 3. 其他池化函数 4. 卷积和池化作为一种无限强的先验 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常 ...
- 花书+吴恩达深度学习(十)卷积神经网络 CNN 之卷积层
目录 0. 前言 1. 2D 图像卷积 2. 3D 图像卷积 3. 过滤器(核函数) 4. 过滤器应用于边缘检测 5. padding 填充 6. stride 步长 7. 使用卷积的动机 8. 1乘 ...
- 深度学习笔记其五:卷积神经网络和PYTORCH
深度学习笔记其五:卷积神经网络和PYTORCH 1. 从全连接层到卷积 1.1 不变性 1.2 多层感知机的限制 1.2.1 平移不变性 1.2.2 局部性 1.3 卷积 1.4 "沃尔多在 ...
- 深度学习实战3-文本卷积神经网络(TextCNN)新闻文本分类
文章目录 一.前期工作 1. 设置GPU 2. 导入预处理词库类 二.导入预处理词库类 三.参数设定 四.创建模型 五.训练模型函数 六.测试模型函数 七.训练模型与预测 今天给大家带来一个简单的中文 ...
- 图像处理神经网络python_深度学习使用Python进行卷积神经网络的图像分类教程
深度学习使用Python进行卷积神经网络的图像分类教程 好的,这次我将使用python编写如何使用卷积神经网络(CNN)进行图像分类.我希望你事先已经阅读并理解了卷积神经网络(CNN)的基本概念,这里 ...
- 【深度学习】Tensorflow搭建卷积神经网络实现情绪识别
[深度学习]Tensorflow搭建卷积神经网络实现情绪识别 文章目录 1 Tensorflow的基本使用方法1.1 计算图1.2 Feed1.3 Fetch1.4 其他解释 2 训练一个Tensor ...
- 【深度学习】深入理解卷积神经网络(CNN)
CNN Author:louwill From:深度学习笔记 本文将为大家介绍一种用途更为广泛.性能更加优越的神经网络结构--卷积神经网络(Convolutional Neural Network, ...
最新文章
- linux可以远程装机吗,linux 远程装机
- 新手学JAVA(六)----处理随机性的数据
- AGS API for JavaScript 图表上地图
- 2018,人工智能在清算中落地
- 寒假每日一题(提高组)【Week 1 完结】
- Android之drawable state各个属性详解
- 2020-08-21 光纤通信第四章知识点整理
- 【今日CV 视觉论文速览】 04 Dec 2018
- 排序-概述,插入排序(180602更新完毕)
- 计算机与操作系统发展阶段 深谈:Linux操作系统
- Laravel后台 + AngularJS前端 的网站构建与维护
- java学习--基础知识阶段性总结--JDK5新特性
- 排序算法专题-桶排序
- 算法与数据结构 第3章 高级排序算法下 学习笔记
- PhotoShop简单案例(4)——利用ps制作正在加载中动画(loading.gif)
- 微机课设 | 基于STC15单片机的简易数字密码锁设计
- knockoutjs与ajax,MVVM架构~knockoutjs系列之为Ajax传递Ko数组对象
- Eclipse阿里巴巴Java开发规范插件安装
- DTCC2019数据风云,十年变迁 第十届中国数据库技术大会隆重启动
- layui 表格表头最右侧多一列 解决办法