网站首页 > 技术文章 正文
在本文中,我们将讨论卷积层中的两个重要概念。
- 如何计算参数的数量?
- 产出的形状是如何计算的?
术语
input_shape
Input_shape = (batch_size, height, width, depth)
Batch_size =一次向前/向后传递的训练数据数
output_shape
Output_shape = (batch_size, height, width, depth)
过滤器/核
在卷积神经网络中,输入数据与卷积核进行卷积,卷积核用于提取特征。卷积核是一个矩阵,它将移动到图像像素数据(输入)上,并将执行与输入数据的特定区域的点积,输出将是点积的矩阵。
计算卷积层中输出的参数个数和形状
示例1
输入:
filter= 1
kernel_size = (3)
input_shape =(10、10、1)
让我们计算Conv2D中的参数数量和输出形状。
如何计算卷积层中的参数个数?
权重:(3,3)= 3*3 =9的卷积核
偏置: 1
[每个卷积核将添加一个偏置。由于只使用了一个卷积核,偏置=1*1]
一个大小为(3,3)的滤波器核的总参数= 9+1 =10
如何计算输出形状?
S→stride, p→padding, n→input size, f→filter size
默认Stride =1,没有提到填充(所以,p=0)
输出形状= n-f+1 = 10-3 +1 =8
在使用卷积滤波器对输入图像应用卷积后,输出将是一个特征映射。特征图中的通道数量取决于所使用卷积核的数量。在这个示例中,只使用了一个卷积核。因此,特征图中的通道数为1。
因此,特征图的Output_shape = (8,8,1)
model1=keras.models.Sequential()
model1.add(Conv2D(filters=1,kernel_size=3,input_shape=(10,10,1),activation='relu'))
model1.summary()
示例2
输入:
- filters = 5
- kernel_size=(3,3)
- input_shape=(10,10,1)
如何计算卷积层中的参数个数?
权重:(3,3)= 3 * 3 =9的卷积核
偏置:1
总参数= 9+1 =10
过滤器的总数= 5
卷积核的总参数= 10 * 5=50
如何计算输出形状?
n = 10, f = 3 s = 1, p = 0
默认Stride =1,没有提到填充(所以,p=0)
输出形状= n-f+1 = 10-3 +1 =8
在使用卷积滤波器对输入图像应用卷积后,输出将是一个特征映射。特征图中的通道数量取决于所使用的过滤器的数量。在这个例子中,使用了5个过滤器。因此,特征图中的通道数为5。
因此,特征图的Output_shape = (8,8,5)
model2=keras.models.Sequential()
model2.add(Conv2D(filters=5,kernel_size=3,input_shape=(10,10,1),activation='relu'))
model2.summary()
示例3
输入:
- filter = 5
- kernel_size = (3)
- input_shape = (10 10 3)
如何计算卷积层中的参数个数?
权重:(3,3)= 3*3 =9的卷积核
卷积核将同时卷积所有三个通道(input_image depth=3)。所以一个卷积核的参数是3 * 3 * 3=27
[卷积核大小 * 通道数]
偏置: 1
[每个卷积核加一个偏置]
对于深度3,一个大小为(3,3)的卷积核的总参数=(3 * 3 * 3)+1=28
卷积核的总数= 5。
卷积核的总参数:5个大小为(3,3),input_image depth(3)= 28*5=140
如何计算输出形状?
n = 10, f = 3 s = 1, p = 0
默认Stride =1,没有提到填充(所以,p=0)
输出形状= n-f+1 = 10-3 +1 =8
在使用卷积核对输入图像应用卷积后,输出将是一个特征映射。特征图中的通道数量取决于所使用的过滤器的数量。在这个例子中,使用了5个卷积核。因此,特征图中的通道数为5。
因此,特征图的Output_shape = (8,8,5)
model3=keras.models.Sequential()
model3.add(Conv2D(filters=5,kernel_size=3,input_shape=(10,10,3),activation='relu'))
model3.summary()
作者:Indhumathy Chelliah
猜你喜欢
- 2024-11-23 太强了,竟然可以根据指纹图像预测性别
- 2024-11-23 深度残差网络+自适应参数化ReLU(调参记录24)Cifar10~95.80%
- 2024-11-23 从零开始构建:使用CNN和TensorFlow进行人脸特征检测
- 2024-11-23 每个ML从业人员都必须知道的10个TensorFlow技巧
- 2024-11-23 基于OpencvCV的情绪检测
- 2024-11-23 LeNet-5 一个应用于图像分类问题的卷积神经网络
- 2024-11-23 使用TensorBoard进行超参数优化
- 2024-11-23 如何实现CNN特征层可视化?终于懂了....
- 2024-11-23 使用卷积神经网络和 Python 进行图像分类
- 2024-11-23 用于图像降噪的卷积自编码器
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)