Skip to content

LayerNormalization is not show as LayerNormalization in onnx graph #2256

Open
@Azulita0317

Description

@Azulita0317

Ask a Question

Question

The LayerNormalization was translate to some operators and BatchNormalization, when I use opset=17。
I hope it could be a unique operator rather than a series of operator list like this:
image

any parameter should I add?
here is my code :

`

class Test_Model(tf.keras.Model):
  def __init__(self):
      super(Test_Model, self).__init__()
      self.input_layer = tf.keras.layers.Input((1,256,1))
      self.conv1 = layers.Conv2D(128, (1, 3), activation='relu',padding='same')
      self.norm1 = layers.LayerNormalization(axis=-1)
      self.conv2 = layers.Conv2D(64, (1, 4), activation='relu',padding='same')
      self.norm2 = layers.LayerNormalization(axis=3)
 def call(self, inputs):
      x = self.conv1(inputs)
      x = self.norm1(x)
      x = self.conv2(x)
      x = self.norm2(x)
      return x

input_shape = [1, 1, 256, 1]
inputs = tf.random.uniform(input_shape)
model = Test_Model()
model(inputs)
model.summary() 

onnx_model, _ = tf2onnx.convert.from_keras(model,opset=18)
new_model = onnxoptimizer.optimize(onnx_model)
inferred_model = onnx.shape_inference.infer_shapes(new_model)
onnx_name = r'./models/operators/layer_norm_tf' + '.onnx'
onnx.save_model(inferred_model, onnx_name) 

`

Metadata

Metadata

Assignees

No one assigned

    Labels

    pending on user responseWaiting for more information or validation from userquestionAn issue, pull request, or discussion needs more information

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions