首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全连通DNN:计算DNN中的自由参数数

全连通DNN:计算DNN中的自由参数数
EN

Data Science用户
提问于 2020-07-21 07:28:22
回答 1查看 57关注 0票数 1

完全连接的DNN的层大小为3-3-4-2,其中第一层大小代表输入层.我们假设所有的层都是仿射层(没有ReLU)。给出了网络中所有权矩阵和所有偏差向量的维数,并计算了该DNN中自由参数的总数。

根据这项任务,第一层大小表示输入层,因此必须是3层。

代码语言:javascript
复制
a(0) = x = 3

如果我知道输入层,那么3-4-2也是偏差向量的大小.

我现在知道了输入层和偏置向量的维数。由于输入层的大小,W的列也必须是3。W的行必须等于偏置向量的大小。

因此,我计算了以下维度:

代码语言:javascript
复制
W(1) = W33, b3, a(1) = 3

W(2) = W43, b4, a(2) = 4

W(3) = W24, b2, a(3) = 2

但是如何计算这个DNN中自由参数的总数呢?

EN

回答 1

Data Science用户

回答已采纳

发布于 2020-07-21 11:02:57

第一层的权重也将取决于输入的维数。

假设这是你的网络。输入有五个特征

\hspace{6cm}

dair.ai提供的图像信用- ML可视化

每层重量和偏差

\begin{array} {|r|r|} \hline &Weights &Biases\\ \hline Layer-1 &5*3 = 15 &3\\ \hline Layer-2 &3*3 = 9 &3\\ \hline Layer-3 &3*4 = 12 &4\\ \hline Layer-4 &4*2 = 8 &2\\ \hline \end{array}

检查与代码

代码语言:javascript
复制
import tensorflow as tf
from tensorflow import keras
model = keras.Sequential()

model.add(keras.layers.Dense( 3, activation="linear",input_shape=(5,)))
model.add(keras.layers.Dense( 3, activation="linear"))
model.add(keras.layers.Dense( 4, activation="linear"))
model.add(keras.layers.Dense( 2, activation="linear"))

model.summary()
#model.get_weights() #Can check weights matrix with this

输出

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/78065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档