将tensorflow tf.contrib.layers.layer_norm转换为tf2.0

Siv*_*mar 7 layer tensorflow

我想将以下代码从 tf1.0 更改为 tf2.0

 tf.contrib.layers.layer_norm(
      inputs=input_tensor, begin_norm_axis=-1, begin_params_axis=-1, scope=name)
Run Code Online (Sandbox Code Playgroud)

此代码取自https://github.com/google-research/bert/blob/master/modeling.py 第 364 行。

请帮我。

小智 6

@rishabh-sahrawat 的答案是正确的,但你应该这样做:

layer_norma = tf.keras.layers.LayerNormalization(axis = -1)
layer_norma(input_tensor)
Run Code Online (Sandbox Code Playgroud)

在您链接的 BERT 案例中,您应该修改代码,如下所示:

def layer_norm(input_tensor, name=None):
  """Run layer normalization on the last dimension of the tensor."""
  layer_norma = tf.keras.layers.LayerNormalization(axis = -1)
  return layer_norma(input_tensor)
Run Code Online (Sandbox Code Playgroud)


Ris*_*wat 2

与 TF2.0 中执行此操作的等效方法相同

tf.keras.layers.LayerNormalization(input_tensor, axis = -1)
Run Code Online (Sandbox Code Playgroud)