Torch in python unable to get some layers like add from model structure

Question:

I have this simple code to write down structure of network.

model = torch.jit.load('best5.torchscript')

file_object = open('sample.txt', 'a')
for name, module in model.named_modules():
    file_object.write(str(module))

Problem is that some layers like "add" is not present

for example this is part from output

(2): RecursiveScriptModule(
      original_name=C3
      (cv1): RecursiveScriptModule(
        original_name=Conv
        (conv): RecursiveScriptModule(original_name=Conv2d)
        (act): RecursiveScriptModule(original_name=SiLU)
      )
      (cv2): RecursiveScriptModule(
        original_name=Conv
        (conv): RecursiveScriptModule(original_name=Conv2d)
        (act): RecursiveScriptModule(original_name=SiLU)
      )
      (cv3): RecursiveScriptModule(
        original_name=Conv
        (conv): RecursiveScriptModule(original_name=Conv2d)
        (act): RecursiveScriptModule(original_name=SiLU)
      )
      (m): RecursiveScriptModule(
        original_name=Sequential
        (0): RecursiveScriptModule(
          original_name=Bottleneck
          (cv1): RecursiveScriptModule(
            original_name=Conv
            (conv): RecursiveScriptModule(original_name=Conv2d)
            (act): RecursiveScriptModule(original_name=SiLU)
          )
          (cv2): RecursiveScriptModule(
            original_name=Conv
            (conv): RecursiveScriptModule(original_name=Conv2d)
            (act): RecursiveScriptModule(original_name=SiLU)
          )
        )
        (1): RecursiveScriptModule(
          original_name=Bottleneck
          (cv1): RecursiveScriptModule(
            original_name=Conv
            (conv): RecursiveScriptModule(original_name=Conv2d)
            (act): RecursiveScriptModule(original_name=SiLU)
          )
          (cv2): RecursiveScriptModule(
            original_name=Conv
            (conv): RecursiveScriptModule(original_name=Conv2d)
            (act): RecursiveScriptModule(original_name=SiLU)
          )
        )
      )
    )

And this is that part in netron
enter image description here

as you can clearly see there is no add layer. Where are that data? Thanks for any help.

Asked By: Juraj Jakubov

||

Answers:

There is no "add" layer because this operation is performed in the forward function directly. The package used to display the computation graph doesn’t rely on the model’s definition to construct its layout, it does so from an inference step.

Answered By: Ivan