当前位置: 首页 > 知识库问答 >
问题:

如何计算灰度图像中简单深度网络的参数个数[重复]

别锐
2023-03-14

如何计算灰度图像中CNN的权重数。

代码如下:

定义输入图像大小

input_shape = (32, 32, 1)
flat_input_size = input_shape[0]*input_shape[1]*input_shape[2]
num_classes = 4

简单深层网络

dnn_model = Sequential()
dnn_model.add(Dense(input_dim=flat_input_size, units=1000))
dnn_model.add(Activation("relu"))
dnn_model.add(Dense(units=512))
dnn_model.add(Activation("relu"))
dnn_model.add(Dense(units=256))
dnn_model.add(Activation("relu"))
dnn_model.add(Dense(units=num_classes))
dnn_model.add(Activation("softmax"))

数一数谁帮我计算参数的数量。如何获取1025000、512512、131328、1028,显示一些详细信息

共有1个答案

贺自明
2023-03-14

对于具有偏置的致密层(偏置为1),计算如下:

(input_neurons + 1) * output_neurons

对于第一层,这是:

(32 * 32 + 1) * 1000 = 1025000

对于第二个:

(1000 + 1) * 512 = 512512

等等等等。

编辑答案以反映评论中的其他问题:

对于卷积层,如注释中所述,您尝试为每个输入通道学习一个过滤器内核,为每个输出通道学习一个附加偏差。因此,其中的参数数量有:

kernel_width * kernel_height * input_channels * output_channels + output_channels = num_parameters

例如,我们使用(3,3)内核从大小为(None,16,16,32)的特征映射到(None,14,14,64)的特征映射,我们得到以下计算:

3 * 3 * 32 * 64 + 64 = 18496

这实际上是CNN中重要的事情,参数的数量与图像大小无关。

 类似资料:
  • 我正在尝试运行一个CNN(卷积神经网络),具有1通道/灰度图像,大小为28x28像素。当我尝试训练模型时,它说: ValueError:图层sequential_5输入0与图层不兼容:: 预期min_ndim=4,发现ndim=3。完整形状收到:[无,28,28]

  • 如何计算CNN网络中的参数总数 代码如下: 如何获取320、18496、73856、590336、2052,有人能解释一下吗?

  • 我正在使用千层面为MNIST数据集创建CNN。我将密切关注这个示例:卷积神经网络和Python特征提取。 我目前拥有的CNN架构(不包括任何退出层)是: 这将输出以下图层信息: 并输出可学习参数的数量为217,706 我想知道这个数字是如何计算的?我已经阅读了许多资源,包括这个StackOverflow的问题,但没有一个明确概括了计算。 如果可能,每层可学习参数的计算是否可以泛化? 例如,卷积层:

  • 问题内容: 我正在尝试导出单色“灰度”图像中特定像素的强度值。我有一些伪代码,但是到目前为止,我还无法实现真正​​有效的功能。 问题答案: 也许这会帮助您: http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html http://docs.oracle.com/javase/7/docs/api/javax

  • 我是CNN研究的新手,我从看Andrew'NG的课程开始。有一个例子我不明白: 他是如何计算#参数值的?