Keras-Glorot统一初始化器:输入和输出单元?

时间:2019-01-11 21:30:52

标签: python keras

在Keras文档中有几件事我不理解

  

它从-limit, limit内的均匀分布中抽取样本   限制为sqrt(6 / (fan_in + fan_out)),其中fan_in为   重量张量中输入单位的数量,fan_out是数量   张量中的输出单位的数量。

在哪里可以看到模型的fan_infan_out? 这是我的模型:

model = Sequential()
model.add(Flatten(input_shape=(224,224,3)))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))

1 个答案:

答案 0 :(得分:1)

使用model.summary(),您将看到每一层的inputoutput形状,这就是 Glorot统一初始化器用于fan_in和分别fan_out

您的示例

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
flatten_1 (Flatten)           (None, 150528)            0         
_________________________________________________________________
dense_1 (Dense)              (None, 256)               38535424  
_________________________________________________________________
dropout_1 (Dropout)          (None, 256)               0         
_________________________________________________________________
dense_2 (Dense)              (None, 1)                 257       
=================================================================

因此dense_1的{​​{1}}等于150528(它是输入),而fan_in等于256(它是输出)。另一方面,fan_out将具有dense_2 256(来自先前密集层的输入)和fan_in 1(其输出形状)。