請教一下各位大神
在測驗tensorflow2.0的BN層時搭建了兩個簡單的網路比對一下
代碼如下
model.add(tf.keras.layers.Dense(20,input_shape=(10,))) #第一層
model.add(tf.keras.layers.Activation('relu')) # 激活層
model.add(tf.keras.layers.Dense(10)) #第二層
model.add(tf.keras.layers.Activation('relu')) # 激活層
model.add(tf.keras.layers.Dense(1)) #輸出層
model.add(tf.keras.layers.Activation('softmax')) # 激活層
summary后的結果是
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 20) 220
_________________________________________________________________
activation (Activation) (None, 20) 0
_________________________________________________________________
dense_1 (Dense) (None, 10) 210
_________________________________________________________________
activation_1 (Activation) (None, 10) 0
_________________________________________________________________
dense_2 (Dense) (None, 1) 11
_________________________________________________________________
activation_2 (Activation) (None, 1) 0
=================================================================
Total params: 441
Trainable params: 441
Non-trainable params: 0
添加BN層后summary的結果是
# 添加BN層后
model2=tf.keras.Sequential()
model2.add(tf.keras.layers.Dense(20,input_shape=(10,))) #第一層
model2.add(tf.keras.layers.BatchNormalization())
model2.add(tf.keras.layers.Activation('relu')) # 激活層
model2.add(tf.keras.layers.Dense(10)) #第二層
model2.add(tf.keras.layers.Activation('relu')) # 激活層
model2.add(tf.keras.layers.Dense(1)) #輸出層
model2.add(tf.keras.layers.Activation('softmax')) # 激活層
Model: "sequential_2"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_6 (Dense) (None, 20) 220
_________________________________________________________________
batch_normalization_1 (Batch (None, 20) 80
_________________________________________________________________
activation_6 (Activation) (None, 20) 0
_________________________________________________________________
dense_7 (Dense) (None, 10) 210
_________________________________________________________________
activation_7 (Activation) (None, 10) 0
_________________________________________________________________
dense_8 (Dense) (None, 1) 11
_________________________________________________________________
activation_8 (Activation) (None, 1) 0
=================================================================
Total params: 521
Trainable params: 481
Non-trainable params: 40
想問一下按照BN層的公式~z=γz+β
BN層不是應該只訓練 20*2個引數嗎,為什么這里訓練80個呢
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/21475.html
