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
as you can clearly see there is no add layer. Where are that data? Thanks for any help.
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.