Model Summary: 224 layers, 7266973 parameters, 0 gradients, 17.0 GFLOPS Namespace(batch_size=1, img_size=[640, 640], weights='./yolov5s.pt') Fusing layers... ------------ BEGIN : DG._module_to_name ---------------------- {Model( (model): Sequential( (0): Focus( (conv): Conv( (conv): Conv2d(12, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Conv( (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (2): C3( (cv1): Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (3): Conv( (conv): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (4): C3( (cv1): Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (5): Conv( (conv): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (6): C3( (cv1): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (7): Conv( (conv): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (8): SPP( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): ModuleList( (0): MaxPool2d(kernel_size=5, stride=1, padding=2, dilation=1, ceil_mode=False) (1): MaxPool2d(kernel_size=9, stride=1, padding=4, dilation=1, ceil_mode=False) (2): MaxPool2d(kernel_size=13, stride=1, padding=6, dilation=1, ceil_mode=False) ) ) (9): C3( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (10): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (11): Upsample(scale_factor=2.0, mode=nearest) (12): Concat() (13): C3( (cv1): Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (14): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (15): Upsample(scale_factor=2.0, mode=nearest) (16): Concat() (17): C3( (cv1): Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (18): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (19): Concat() (20): C3( (cv1): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (21): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (22): Concat() (23): C3( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (24): Detect( (m): ModuleList( (0): Conv2d(128, 255, kernel_size=(1, 1), stride=(1, 1)) (1): Conv2d(256, 255, kernel_size=(1, 1), stride=(1, 1)) (2): Conv2d(512, 255, kernel_size=(1, 1), stride=(1, 1)) ) ) ) ): '', Sequential( (0): Focus( (conv): Conv( (conv): Conv2d(12, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Conv( (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (2): C3( (cv1): Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (3): Conv( (conv): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (4): C3( (cv1): Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (5): Conv( (conv): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (6): C3( (cv1): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (7): Conv( (conv): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (8): SPP( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): ModuleList( (0): MaxPool2d(kernel_size=5, stride=1, padding=2, dilation=1, ceil_mode=False) (1): MaxPool2d(kernel_size=9, stride=1, padding=4, dilation=1, ceil_mode=False) (2): MaxPool2d(kernel_size=13, stride=1, padding=6, dilation=1, ceil_mode=False) ) ) (9): C3( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (10): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (11): Upsample(scale_factor=2.0, mode=nearest) (12): Concat() (13): C3( (cv1): Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (14): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (15): Upsample(scale_factor=2.0, mode=nearest) (16): Concat() (17): C3( (cv1): Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (18): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (19): Concat() (20): C3( (cv1): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (21): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (22): Concat() (23): C3( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (24): Detect( (m): ModuleList( (0): Conv2d(128, 255, kernel_size=(1, 1), stride=(1, 1)) (1): Conv2d(256, 255, kernel_size=(1, 1), stride=(1, 1)) (2): Conv2d(512, 255, kernel_size=(1, 1), stride=(1, 1)) ) ) ): 'model', Focus( (conv): Conv( (conv): Conv2d(12, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.0', Conv( (conv): Conv2d(12, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.0.conv', Conv2d(12, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.0.conv.conv', ReLU(): 'model.0.conv.act', Conv( (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ): 'model.1', Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)): 'model.1.conv', ReLU(): 'model.1.act', C3( (cv1): Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ): 'model.2', Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.2.cv1', Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)): 'model.2.cv1.conv', ReLU(): 'model.2.cv1.act', Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.2.cv2', Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)): 'model.2.cv2.conv', ReLU(): 'model.2.cv2.act', Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.2.cv3', Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)): 'model.2.cv3.conv', ReLU(): 'model.2.cv3.act', Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ): 'model.2.m', Bottleneck( (cv1): Conv( (conv): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.2.m.0', Conv( (conv): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.2.m.0.cv1', Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1)): 'model.2.m.0.cv1.conv', ReLU(): 'model.2.m.0.cv1.act', Conv( (conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.2.m.0.cv2', Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.2.m.0.cv2.conv', ReLU(): 'model.2.m.0.cv2.act', Conv( (conv): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ): 'model.3', Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)): 'model.3.conv', ReLU(): 'model.3.act', C3( (cv1): Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ): 'model.4', Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.4.cv1', Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)): 'model.4.cv1.conv', ReLU(): 'model.4.cv1.act', Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.4.cv2', Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)): 'model.4.cv2.conv', ReLU(): 'model.4.cv2.act', Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.4.cv3', Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.4.cv3.conv', ReLU(): 'model.4.cv3.act', Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ): 'model.4.m', Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.4.m.0', Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.4.m.0.cv1', Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)): 'model.4.m.0.cv1.conv', ReLU(): 'model.4.m.0.cv1.act', Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.4.m.0.cv2', Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.4.m.0.cv2.conv', ReLU(): 'model.4.m.0.cv2.act', Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.4.m.1', Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.4.m.1.cv1', Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)): 'model.4.m.1.cv1.conv', ReLU(): 'model.4.m.1.cv1.act', Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.4.m.1.cv2', Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.4.m.1.cv2.conv', ReLU(): 'model.4.m.1.cv2.act', Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.4.m.2', Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.4.m.2.cv1', Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)): 'model.4.m.2.cv1.conv', ReLU(): 'model.4.m.2.cv1.act', Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.4.m.2.cv2', Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.4.m.2.cv2.conv', ReLU(): 'model.4.m.2.cv2.act', Conv( (conv): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ): 'model.5', Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)): 'model.5.conv', ReLU(): 'model.5.act', C3( (cv1): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ): 'model.6', Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.6.cv1', Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.6.cv1.conv', ReLU(): 'model.6.cv1.act', Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.6.cv2', Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.6.cv2.conv', ReLU(): 'model.6.cv2.act', Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.6.cv3', Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.6.cv3.conv', ReLU(): 'model.6.cv3.act', Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ): 'model.6.m', Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.6.m.0', Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.6.m.0.cv1', Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.6.m.0.cv1.conv', ReLU(): 'model.6.m.0.cv1.act', Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.6.m.0.cv2', Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.6.m.0.cv2.conv', ReLU(): 'model.6.m.0.cv2.act', Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.6.m.1', Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.6.m.1.cv1', Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.6.m.1.cv1.conv', ReLU(): 'model.6.m.1.cv1.act', Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.6.m.1.cv2', Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.6.m.1.cv2.conv', ReLU(): 'model.6.m.1.cv2.act', Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.6.m.2', Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.6.m.2.cv1', Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.6.m.2.cv1.conv', ReLU(): 'model.6.m.2.cv1.act', Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.6.m.2.cv2', Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.6.m.2.cv2.conv', ReLU(): 'model.6.m.2.cv2.act', Conv( (conv): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ): 'model.7', Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)): 'model.7.conv', ReLU(): 'model.7.act', SPP( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): ModuleList( (0): MaxPool2d(kernel_size=5, stride=1, padding=2, dilation=1, ceil_mode=False) (1): MaxPool2d(kernel_size=9, stride=1, padding=4, dilation=1, ceil_mode=False) (2): MaxPool2d(kernel_size=13, stride=1, padding=6, dilation=1, ceil_mode=False) ) ): 'model.8', Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.8.cv1', Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.8.cv1.conv', ReLU(): 'model.8.cv1.act', Conv( (conv): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.8.cv2', Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1)): 'model.8.cv2.conv', ReLU(): 'model.8.cv2.act', ModuleList( (0): MaxPool2d(kernel_size=5, stride=1, padding=2, dilation=1, ceil_mode=False) (1): MaxPool2d(kernel_size=9, stride=1, padding=4, dilation=1, ceil_mode=False) (2): MaxPool2d(kernel_size=13, stride=1, padding=6, dilation=1, ceil_mode=False) ): 'model.8.m', MaxPool2d(kernel_size=5, stride=1, padding=2, dilation=1, ceil_mode=False): 'model.8.m.0', MaxPool2d(kernel_size=9, stride=1, padding=4, dilation=1, ceil_mode=False): 'model.8.m.1', MaxPool2d(kernel_size=13, stride=1, padding=6, dilation=1, ceil_mode=False): 'model.8.m.2', C3( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ): 'model.9', Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.9.cv1', Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.9.cv1.conv', ReLU(): 'model.9.cv1.act', Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.9.cv2', Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.9.cv2.conv', ReLU(): 'model.9.cv2.act', Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.9.cv3', Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)): 'model.9.cv3.conv', ReLU(): 'model.9.cv3.act', Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ): 'model.9.m', Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.9.m.0', Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.9.m.0.cv1', Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.9.m.0.cv1.conv', ReLU(): 'model.9.m.0.cv1.act', Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.9.m.0.cv2', Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.9.m.0.cv2.conv', ReLU(): 'model.9.m.0.cv2.act', Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.10', Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.10.conv', ReLU(): 'model.10.act', Upsample(scale_factor=2.0, mode=nearest): 'model.11', Concat(): 'model.12', C3( (cv1): Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ): 'model.13', Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.13.cv1', Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.13.cv1.conv', ReLU(): 'model.13.cv1.act', Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.13.cv2', Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.13.cv2.conv', ReLU(): 'model.13.cv2.act', Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.13.cv3', Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.13.cv3.conv', ReLU(): 'model.13.cv3.act', Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ): 'model.13.m', Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.13.m.0', Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.13.m.0.cv1', Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.13.m.0.cv1.conv', ReLU(): 'model.13.m.0.cv1.act', Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.13.m.0.cv2', Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.13.m.0.cv2.conv', ReLU(): 'model.13.m.0.cv2.act', Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.14', Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.14.conv', ReLU(): 'model.14.act', Upsample(scale_factor=2.0, mode=nearest): 'model.15', Concat(): 'model.16', C3( (cv1): Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ): 'model.17', Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.17.cv1', Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)): 'model.17.cv1.conv', ReLU(): 'model.17.cv1.act', Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.17.cv2', Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)): 'model.17.cv2.conv', ReLU(): 'model.17.cv2.act', Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.17.cv3', Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.17.cv3.conv', ReLU(): 'model.17.cv3.act', Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ): 'model.17.m', Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.17.m.0', Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.17.m.0.cv1', Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)): 'model.17.m.0.cv1.conv', ReLU(): 'model.17.m.0.cv1.act', Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.17.m.0.cv2', Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.17.m.0.cv2.conv', ReLU(): 'model.17.m.0.cv2.act', Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ): 'model.18', Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)): 'model.18.conv', ReLU(): 'model.18.act', Concat(): 'model.19', C3( (cv1): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ): 'model.20', Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.20.cv1', Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.20.cv1.conv', ReLU(): 'model.20.cv1.act', Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.20.cv2', Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.20.cv2.conv', ReLU(): 'model.20.cv2.act', Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.20.cv3', Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.20.cv3.conv', ReLU(): 'model.20.cv3.act', Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ): 'model.20.m', Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.20.m.0', Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.20.m.0.cv1', Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)): 'model.20.m.0.cv1.conv', ReLU(): 'model.20.m.0.cv1.act', Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.20.m.0.cv2', Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.20.m.0.cv2.conv', ReLU(): 'model.20.m.0.cv2.act', Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ): 'model.21', Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)): 'model.21.conv', ReLU(): 'model.21.act', Concat(): 'model.22', C3( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ): 'model.23', Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.23.cv1', Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.23.cv1.conv', ReLU(): 'model.23.cv1.act', Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.23.cv2', Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.23.cv2.conv', ReLU(): 'model.23.cv2.act', Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.23.cv3', Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)): 'model.23.cv3.conv', ReLU(): 'model.23.cv3.act', Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ): 'model.23.m', Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ): 'model.23.m.0', Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ): 'model.23.m.0.cv1', Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)): 'model.23.m.0.cv1.conv', ReLU(): 'model.23.m.0.cv1.act', Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ): 'model.23.m.0.cv2', Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)): 'model.23.m.0.cv2.conv', ReLU(): 'model.23.m.0.cv2.act', Detect( (m): ModuleList( (0): Conv2d(128, 255, kernel_size=(1, 1), stride=(1, 1)) (1): Conv2d(256, 255, kernel_size=(1, 1), stride=(1, 1)) (2): Conv2d(512, 255, kernel_size=(1, 1), stride=(1, 1)) ) ): 'model.24', ModuleList( (0): Conv2d(128, 255, kernel_size=(1, 1), stride=(1, 1)) (1): Conv2d(256, 255, kernel_size=(1, 1), stride=(1, 1)) (2): Conv2d(512, 255, kernel_size=(1, 1), stride=(1, 1)) ): 'model.24.m', Conv2d(128, 255, kernel_size=(1, 1), stride=(1, 1)): 'model.24.m.0', Conv2d(256, 255, kernel_size=(1, 1), stride=(1, 1)): 'model.24.m.1', Conv2d(512, 255, kernel_size=(1, 1), stride=(1, 1)): 'model.24.m.2'} ------------ END : DG._module_to_name ---------------------- ------------ BEGIN : DG.module_to_node --------------------- {Conv2d(512, 255, kernel_size=(1, 1), stride=(1, 1)): } ------------ END : DG.module_to_node --------------------- ***** BEGIN PRUNING *********************************************************** LEVEL 1 : model Sequential( (0): Focus( (conv): Conv( (conv): Conv2d(12, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Conv( (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (2): C3( (cv1): Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (3): Conv( (conv): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (4): C3( (cv1): Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (5): Conv( (conv): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (6): C3( (cv1): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (1): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) (2): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (7): Conv( (conv): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (8): SPP( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): ModuleList( (0): MaxPool2d(kernel_size=5, stride=1, padding=2, dilation=1, ceil_mode=False) (1): MaxPool2d(kernel_size=9, stride=1, padding=4, dilation=1, ceil_mode=False) (2): MaxPool2d(kernel_size=13, stride=1, padding=6, dilation=1, ceil_mode=False) ) ) (9): C3( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (10): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (11): Upsample(scale_factor=2.0, mode=nearest) (12): Concat() (13): C3( (cv1): Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (14): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (15): Upsample(scale_factor=2.0, mode=nearest) (16): Concat() (17): C3( (cv1): Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (18): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (19): Concat() (20): C3( (cv1): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (21): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) (22): Concat() (23): C3( (cv1): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv3): Conv( (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (m): Sequential( (0): Bottleneck( (cv1): Conv( (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1)) (act): ReLU() ) (cv2): Conv( (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ) ) (24): Detect( (m): ModuleList( (0): Conv2d(128, 255, kernel_size=(1, 1), stride=(1, 1)) (1): Conv2d(256, 255, kernel_size=(1, 1), stride=(1, 1)) (2): Conv2d(512, 255, kernel_size=(1, 1), stride=(1, 1)) ) ) ) ____ LEVEL 2 : 0 Focus( (conv): Conv( (conv): Conv2d(12, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ) ________ LEVEL 3 : conv Conv( (conv): Conv2d(12, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (act): ReLU() ) ________ END CHILD LEVEL 3 ______________________ ____ END CHILD LEVEL 2 ______________________ ____ LEVEL 2 : 1 Conv( (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) (act): ReLU() ) ________ LEVEL 3 : conv Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1)) Conv2d detected. Attempting to prune...... ======== prune_conv() ======== prune_index = [11, 0, 17, 4, 19, 29, 8, 33, 13, 31, 23, 38, 53, 46, 63, 20, 45, 40, 58, 15, 36, 28, 57, 27, 16, 55, 37, 5, 41, 34, 48, 12] num_pruned = 32 Traceback (most recent call last): File "models/prune_TP_git_issue.py", line 117, in new_model = prune_model(model, img) File "models/prune_TP_git_issue.py", line 64, in prune_model prune_conv(mm3, SPARSITY) File "models/prune_TP_git_issue.py", line 48, in prune_conv raise e File "models/prune_TP_git_issue.py", line 46, in prune_conv plan = DG.get_pruning_plan(conv, tp.prune_conv, prune_index) File "/home/tfs/venv_yolov5_Torch_Pruning/lib/python3.6/site-packages/torch_pruning-0.2.2-py3.6.egg/torch_pruning/dependency.py", line 330, in get_pruning_plan KeyError: Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))