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

如何计算CNN的权重数?

贺景山
2023-03-14

考虑到用于将图像分为两类的卷积神经网络,我们如何计算权重数:

  • 输入:100x100灰度图像
  • 第1层:具有60个7x7卷积滤波器的卷积层(步长=1,有效填充)
  • 第2层:卷积层,具有100个5x5卷积滤波器(步长=1,有效填充)
  • 第3层:最大池层,将第2层向下采样4倍(例如,从500x500到250x250)
  • 第4层:250个单元的致密层
  • 第5层:200个单元的致密层
  • 第6层:单输出单元

假设每个层都存在偏差。此外,池化层有一个权重(类似于AlexNet)

这个网络有多少权重?

import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Conv2D, MaxPooling2D

model = Sequential()

# Layer 1
model.add(Conv2D(60, (7, 7), input_shape = (100, 100, 1), padding="same", activation="relu"))

# Layer 2
model.add(Conv2D(100, (5, 5), padding="same", activation="relu"))

# Layer 3
model.add(MaxPooling2D(pool_size=(2, 2)))

# Layer 4
model.add(Dense(250))

# Layer 5
model.add(Dense(200))

model.summary()

共有1个答案

左丘烨烁
2023-03-14

使用Sequential.summary-链接到留档。

示例用法:

from tensorflow.keras.models import *

model = Sequential([
    # Your architecture here
]);

model.summary()

架构的输出是:

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None, 94, 94, 60)        3000      
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 90, 90, 100)       150100    
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 45, 45, 100)       0         
_________________________________________________________________
flatten (Flatten)            (None, 202500)            0         
_________________________________________________________________
dense (Dense)                (None, 250)               50625250  
_________________________________________________________________
dense_1 (Dense)              (None, 200)               50200     
_________________________________________________________________
dense_2 (Dense)              (None, 1)                 201       
=================================================================
Total params: 50,828,751
Trainable params: 50,828,751
Non-trainable params: 0
_________________________________________________________________

这是50828751个参数。

对于具有

  • num\u过滤器过滤器,

权重数为:(num\u filters*filter\u size*filter\u size*num\u channels)num\u filters

E、 你的神经网络的第一层

  • 60个过滤器

其中的重量数为:(60*7*7*1)60,即3000。

对于具有

  • num\u单位神经元,

权重个数为:(num_units*num_inputs)num_units

例如。神经网络中的第5层具有

  • 200个神经元
  • 之前的第4层有250个神经元

其中的砝码数为200*250,即50200。

 类似资料:
  • 我使用MatConvNet开发了一个CNN,能够可视化第一层的重量。它看起来与这里显示的非常相似(也附在下面,以防我不够具体)http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html 我的问题是,权重梯度是什么?我不确定这些是什么,也无法生成这些。。。

  • 本文向大家介绍请描述css的权重计算规则相关面试题,主要包含被问及请描述css的权重计算规则时的应答技巧和注意事项,需要的朋友参考一下 这道题去年推特上一个大神发的,几千个人只有一半人对。。。 两个123颜色是啥? 即使都不会,统计学上也支持一半人答对。

  • 采用何种权值计算函数(目前)取决于查询的模式。 权值计算函数进行如下两部分主要部分: 词组评分, 统计学评分. 词组评分根据文档和查询的最长公共子串(LCS,longest common subsequence)的长度进行。因此如果文档对查询词组有一个精确匹配(即文档直接包含该词组),那么它的词组评分就取得了可能的最大值,也就是查询中词的个数。 统计学评分基于经典的BM25函数,该函数仅考虑词频。

  • 问题内容: 我需要分离并计算arraylist中有多少个相同的值,并根据出现的次数进行打印。 我有一个名为digits的arraylist: 我创建了一个将每个值分开并将其保存到新数组的方法。 之后,我得到了一个名为数字的新数组。我在此数组上使用排序 和我的ArrayList看起来像这样: 它具有: 我需要根据数字的多少来打印出数字字符串,所以它看起来应该像这样:1354678290 问题答案:

  • 问题内容: 我有一张桌子 PK在哪里,fk是外键。fk的值并不多,大约20。f2永远不会大于3。但是,有很多对。是。 现在,假设我们正在将100和200映射到A,将300和400映射到B,将500映射到C- 这个映射是给定的。我们想留下来。到目前为止,这大致可以通过以下方式解决 现在,问题在于我们需要在映射表中保留f2值0、1、2,因此这是期望的结果: 我真的很想将其保留在MySQL中。 问题答案

  • 问题内容: 我想计算数组中每个重复项的出现,最后得到一个唯一的/非重复项及其各自出现的数组。 这是我的代码;但是我没有错! 问题答案: , 请享用 :-) 结果: