LeNet5实现-numpy
本文字数: 5.9k 阅读时长 ≈ 11 分钟
im2col解析5
本文字数: 1.8k 阅读时长 ≈ 3 分钟
前面实现了卷积层和全连接层的相互转换,下面实现池化层和全连接层的相互转换
im2col解析4
本文字数: 1.8k 阅读时长 ≈ 3 分钟
之前实现了一个图像和行向量相互转换的函数,逐图像进行局部连接矩阵的转换
其实现原理较下标计算更易理解,通过循环,逐个图像对局部连接矩阵进行切片操作,得到矩阵后拉平为向量,以行向量方式进行保存
反向转换图像可以设置标志位isstinct
,是否返回叠加图像还是原图,其实现原理是在指定位置赋值过程中是执行累加还是执行覆盖
im2col解析3
本文字数: 9.8k 阅读时长 ≈ 18 分钟
前面实现了图像转列向量,在之前推导过程中使用的是行向量,所以修改im2col.py
,实现im2row
的功能
卷积核大小为\(2\times 2\),步长为1
,零填充为0
- field_height = 2
- field_width = 2
- stride = 1
- padding = 0
2
维图像大小为\(3\times 3\),3维图像大小为\(2\times 3\times 3\),4维图像大小为\(2\times 2\times 3\times 3\)
所以输出数据体的空间尺寸为\(2\times 2\),深度为2
,数量为2
- out_height = 2
- out_width = 2
- depth = 2
- N = 2
im2col解析2
本文字数: 13k 阅读时长 ≈ 24 分钟
im2col
表示image to column
,将图像转换成列向量
卷积操作步骤:首先将卷积核映射到x_padded
左上角,然后沿着行方向操作,每次滑动stride
距离;到达最右端后,将卷积核往列方向滑动stride
距离,再实现从左到右的滑动
im2col解析1
本文字数: 6.9k 阅读时长 ≈ 13 分钟
在cs231n
课程Convolutional Neural Networks: Architectures, Convolution / Pooling Layers中提到使用矩阵乘法方式完成卷积层及池化层操作,同时在Assignment #2: Fully-Connected Nets, Batch Normalization, Dropout, Convolutional Nets中给出了一个卷积层转全连接层的实现 - im2col.py
im2col
表示将滤波器局部连接矩阵向量化为列向量(column vector
),在行方向进行堆叠,最终得到2-D
矩阵
im2col.py
使用 花式下标求解 的方式,让我觉得应该写篇文章好好学习一下
本文介绍一些numpy
实现,下一篇介绍im2col
实现,第三篇实现im2row
,第四篇介绍另一种实现图像和行向量互换的方式,最后实现池化层图像和行向量的互换pool2row
- 数组扩展
- 数组变形
- 数组填充
- 维数转换
- 矩阵提取
- 数据叠加
卷积神经网络推导-批量图片矩阵计算
本文字数: 15k 阅读时长 ≈ 27 分钟
之前推导LeNet-5
网络输入单个图像数据的前后向传播,现在实现批量图像数据的前后向传播
卷积神经网络推导-单张图片矩阵计算
本文字数: 15k 阅读时长 ≈ 27 分钟
以LeNet-5
为例,进行卷积神经网络的矩阵推导
卷积神经网络概述
本文字数: 4.9k 阅读时长 ≈ 9 分钟
卷积神经网络(convolutional neural network
)在神经网络(neural network
)的基础上进一步发展,实现更强大的分类、识别性能
结合cs231n
课程Convolutional Neural Networks: Architectures, Convolution / Pooling Layers,介绍卷积层和池化层,以及基于卷积层、池化层和全连接层的卷积神经网络常用的组成模式
暂不涉及之后发展的网络结构和组成模式
卷积神经网络以神经元为单位进行网络组织,不同于神经网络的2-D
处理,卷积神经网络假定输入数据是图像(image
),每层的输入输出都是一个3
维数据体(3-D volume
),各层神经元不仅在2-D
空间上进行排列,还在深度(depth
)上进行组织
卷积神经网络主要的层类型有卷积层(convolutional layer
)、池化层(pooling layer
)和全连接层(fully-connected layer
)