【问题标题】:Xavier initialization in Tensorflow 2.0Tensorflow 2.0 中的 Xavier 初始化
【发布时间】:2019-09-24 18:56:06
【问题描述】:

我已经建立了一个简单的 ANN 模型:

#ANN:
model = tf.keras.models.Sequential([
  tf.keras.layers.Dense(units = 128,activation = 'relu',input_shape = (784,)),#input layer
  tf.keras.layers.BatchNormalization(),#batch normalization
  tf.keras.layers.Dropout(0.2), #dropout technique

  tf.keras.layers.Dense(units = 64,activation = 'relu'), #second fully connected layer
  tf.keras.layers.BatchNormalization(),#batch normalization
  tf.keras.layers.Dropout(0.2),#dropout technique

  tf.keras.layers.Dense(units = 10,activation = 'softmax') #output layer
    ])

model.compile(optimizer = tf.train.AdamOptimizer(0.001),
             loss='sparse_categorical_crossentropy',
              metrics=['sparse_categorical_accuracy']) #compiling the model


model.fit(X_train,Y_train,batch_size = 64,epochs = 100)

但我想使用 Xavier 初始化权重,但我没有找到如何在 tensorflow 2.0 中做到这一点

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    在 tf2.0 中,GlorotUniform / GlorotNormal 初始化器也称为 Xavier 统一/普通初始化器。所以你可以像这样定义一个层,

    model.add(Dense(64,kernel_initializer='glorot_uniform',bias_initializer='zeros'))
    

    【讨论】:

      猜你喜欢
      • 2019-08-14
      • 2016-02-11
      • 2016-12-24
      • 2018-07-16
      • 2020-09-26
      • 2016-02-16
      • 2017-09-15
      • 1970-01-01
      • 2016-06-30
      相关资源
      最近更新 更多