如何在 Keras 序列模型中使用 LayerNormalization 层?

问题描述

我刚刚进入 Keras 和 Tensor 流程。 我在顺序模型中添加输入归一化层时遇到很多问题。 现在我的模型是 ;

 model = tf.keras.models.Sequential()
 model.add(keras.layers.Dense(256,input_shape=(13,),activation='relu'))
 model.add(tf.keras.layers.Layernormalization(axis=-1,center=True,scale=True))
 model.add(keras.layers.Dense(128,activation='relu'))
 model.add(keras.layers.Dense(64,activation='relu'))
 model.add(keras.layers.Dense(1))
 model.summary()

我的疑问是我是否应该首先执行一个适应功能以及如何在顺序模型中使用它。 谢谢大家!!

解决方法

我也在努力解决这个问题。根据{{​​3}},不需要适应。

model = tf.keras.models.Sequential([
  # Reshape into "channels last" setup.
  tf.keras.layers.Reshape((28,28,1),input_shape=(28,28)),tf.keras.layers.Conv2D(filters=10,kernel_size=(3,3),data_format="channels_last"),# LayerNorm Layer
  tf.keras.layers.LayerNormalization(axis=3,center=True,scale=True),tf.keras.layers.Flatten(),tf.keras.layers.Dense(128,activation='relu'),tf.keras.layers.Dropout(0.2),tf.keras.layers.Dense(10,activation='softmax')
])

model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
model.fit(x_test,y_test)

另外,请确保您需要 LayerNormalization。如果我理解正确,这会自行标准化每个输入。批量归一化可能更合适。 this example