nndl / solutions

《神经网络与深度学习》课后习题答案-分享讨论
714 stars 80 forks source link

习题4-5 #12

Open fecet opened 4 years ago

fecet commented 4 years ago

4-5

from tensorflow import keras
from tensorflow.keras import layers
L=3
N=18
m=3
network=keras.Sequential([])
for _ in range(L):
    network.add(layers.Dense(N/L))
    network.add(layers.ReLU())
network.add(layers.Dense(1))
network.build(input_shape=(None,m))
network.count_params()==N+1+(L-1)*(N/L)*(N/L)+m*N/L+N/L
zzgnb commented 1 year ago

理解一句话就行:全连接网络中,每个神经元的权重数量等于上一层的输出维度加1(偏置),每层权重数量等于神经元个数*单个神经元权重数。

ccdgyro commented 4 months ago

(宝宝版)

神经元激活前:z = Wa + b 神经元激活后:a = f(z)

W 来自于两层网络之间的连线,b 来自于神经元内的偏置,

总共参数数量 = 连线数量 + 产生偏置的神经元数量

连线数量 = 输入层和隐藏层第一层之间连线数量 + 隐藏层连线数量 + 输出层和隐藏层最后一层连线数量 = M0(N/L) + (N/L)^2 (L-1) + (N/L)*1

产生偏置的神经元数量 = 隐藏层神经元数量 + 输出层神经元数量 = (N/L)*L + 1