yolo5su / yolov5su_paddle_model /x2paddle_code.py
crazychenz's picture
initial commit
2d303c1
import paddle
import math
from x2paddle.op_mapper.pytorch2paddle import pytorch_custom_layer as x2paddle_nn
class DetectionModel(paddle.nn.Layer):
def __init__(self):
super(DetectionModel, self).__init__()
self.conv2d0 = paddle.nn.Conv2D(stride=2, padding=2, out_channels=32, kernel_size=(6, 6), in_channels=3)
self.silu0 = paddle.nn.Silu()
self.conv2d1 = paddle.nn.Conv2D(stride=2, padding=1, out_channels=64, kernel_size=(3, 3), in_channels=32)
self.silu1 = paddle.nn.Silu()
self.conv2d2 = paddle.nn.Conv2D(out_channels=32, kernel_size=(1, 1), in_channels=64)
self.silu2 = paddle.nn.Silu()
self.conv2d3 = paddle.nn.Conv2D(out_channels=32, kernel_size=(1, 1), in_channels=32)
self.silu3 = paddle.nn.Silu()
self.conv2d4 = paddle.nn.Conv2D(padding=1, out_channels=32, kernel_size=(3, 3), in_channels=32)
self.silu4 = paddle.nn.Silu()
self.conv2d5 = paddle.nn.Conv2D(out_channels=32, kernel_size=(1, 1), in_channels=64)
self.silu5 = paddle.nn.Silu()
self.conv2d6 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=64)
self.silu6 = paddle.nn.Silu()
self.conv2d7 = paddle.nn.Conv2D(stride=2, padding=1, out_channels=128, kernel_size=(3, 3), in_channels=64)
self.silu7 = paddle.nn.Silu()
self.conv2d8 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=128)
self.silu8 = paddle.nn.Silu()
self.conv2d9 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=64)
self.silu9 = paddle.nn.Silu()
self.conv2d10 = paddle.nn.Conv2D(padding=1, out_channels=64, kernel_size=(3, 3), in_channels=64)
self.silu10 = paddle.nn.Silu()
self.conv2d11 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=64)
self.silu11 = paddle.nn.Silu()
self.conv2d12 = paddle.nn.Conv2D(padding=1, out_channels=64, kernel_size=(3, 3), in_channels=64)
self.silu12 = paddle.nn.Silu()
self.conv2d13 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=128)
self.silu13 = paddle.nn.Silu()
self.conv2d14 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=128)
self.silu14 = paddle.nn.Silu()
self.conv2d15 = paddle.nn.Conv2D(stride=2, padding=1, out_channels=256, kernel_size=(3, 3), in_channels=128)
self.silu15 = paddle.nn.Silu()
self.conv2d16 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=256)
self.silu16 = paddle.nn.Silu()
self.conv2d17 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=128)
self.silu17 = paddle.nn.Silu()
self.conv2d18 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu18 = paddle.nn.Silu()
self.conv2d19 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=128)
self.silu19 = paddle.nn.Silu()
self.conv2d20 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu20 = paddle.nn.Silu()
self.conv2d21 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=128)
self.silu21 = paddle.nn.Silu()
self.conv2d22 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu22 = paddle.nn.Silu()
self.conv2d23 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=256)
self.silu23 = paddle.nn.Silu()
self.conv2d24 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=256)
self.silu24 = paddle.nn.Silu()
self.conv2d25 = paddle.nn.Conv2D(stride=2, padding=1, out_channels=512, kernel_size=(3, 3), in_channels=256)
self.silu25 = paddle.nn.Silu()
self.conv2d26 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=512)
self.silu26 = paddle.nn.Silu()
self.conv2d27 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=256)
self.silu27 = paddle.nn.Silu()
self.conv2d28 = paddle.nn.Conv2D(padding=1, out_channels=256, kernel_size=(3, 3), in_channels=256)
self.silu28 = paddle.nn.Silu()
self.conv2d29 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=512)
self.silu29 = paddle.nn.Silu()
self.conv2d30 = paddle.nn.Conv2D(out_channels=512, kernel_size=(1, 1), in_channels=512)
self.silu30 = paddle.nn.Silu()
self.conv2d31 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=512)
self.silu31 = paddle.nn.Silu()
self.pool2d0 = paddle.nn.MaxPool2D(kernel_size=[5, 5], stride=1, padding=2)
self.pool2d1 = paddle.nn.MaxPool2D(kernel_size=[5, 5], stride=1, padding=2)
self.pool2d2 = paddle.nn.MaxPool2D(kernel_size=[5, 5], stride=1, padding=2)
self.conv2d32 = paddle.nn.Conv2D(out_channels=512, kernel_size=(1, 1), in_channels=1024)
self.silu32 = paddle.nn.Silu()
self.conv2d33 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=512)
self.silu33 = paddle.nn.Silu()
self.conv2d34 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=512)
self.silu34 = paddle.nn.Silu()
self.conv2d35 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=128)
self.silu35 = paddle.nn.Silu()
self.conv2d36 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu36 = paddle.nn.Silu()
self.conv2d37 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=512)
self.silu37 = paddle.nn.Silu()
self.conv2d38 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=256)
self.silu38 = paddle.nn.Silu()
self.conv2d39 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=256)
self.silu39 = paddle.nn.Silu()
self.conv2d40 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=256)
self.silu40 = paddle.nn.Silu()
self.conv2d41 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=64)
self.silu41 = paddle.nn.Silu()
self.conv2d42 = paddle.nn.Conv2D(padding=1, out_channels=64, kernel_size=(3, 3), in_channels=64)
self.silu42 = paddle.nn.Silu()
self.conv2d43 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=256)
self.silu43 = paddle.nn.Silu()
self.conv2d44 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=128)
self.silu44 = paddle.nn.Silu()
self.conv2d45 = paddle.nn.Conv2D(stride=2, padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu45 = paddle.nn.Silu()
self.conv2d46 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=256)
self.silu46 = paddle.nn.Silu()
self.conv2d47 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=128)
self.silu47 = paddle.nn.Silu()
self.conv2d48 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu48 = paddle.nn.Silu()
self.conv2d49 = paddle.nn.Conv2D(out_channels=128, kernel_size=(1, 1), in_channels=256)
self.silu49 = paddle.nn.Silu()
self.conv2d50 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=256)
self.silu50 = paddle.nn.Silu()
self.conv2d51 = paddle.nn.Conv2D(stride=2, padding=1, out_channels=256, kernel_size=(3, 3), in_channels=256)
self.silu51 = paddle.nn.Silu()
self.conv2d52 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=512)
self.silu52 = paddle.nn.Silu()
self.conv2d53 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=256)
self.silu53 = paddle.nn.Silu()
self.conv2d54 = paddle.nn.Conv2D(padding=1, out_channels=256, kernel_size=(3, 3), in_channels=256)
self.silu54 = paddle.nn.Silu()
self.conv2d55 = paddle.nn.Conv2D(out_channels=256, kernel_size=(1, 1), in_channels=512)
self.silu55 = paddle.nn.Silu()
self.conv2d56 = paddle.nn.Conv2D(out_channels=512, kernel_size=(1, 1), in_channels=512)
self.silu56 = paddle.nn.Silu()
self.x731 = self.create_parameter(dtype='float32', shape=(1, 8400), default_initializer=paddle.nn.initializer.Constant(value=0.0))
self.conv2d57 = paddle.nn.Conv2D(padding=1, out_channels=64, kernel_size=(3, 3), in_channels=128)
self.silu57 = paddle.nn.Silu()
self.conv2d58 = paddle.nn.Conv2D(padding=1, out_channels=64, kernel_size=(3, 3), in_channels=64)
self.silu58 = paddle.nn.Silu()
self.conv2d59 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=64)
self.conv2d60 = paddle.nn.Conv2D(padding=1, out_channels=64, kernel_size=(3, 3), in_channels=256)
self.silu59 = paddle.nn.Silu()
self.conv2d61 = paddle.nn.Conv2D(padding=1, out_channels=64, kernel_size=(3, 3), in_channels=64)
self.silu60 = paddle.nn.Silu()
self.conv2d62 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=64)
self.conv2d63 = paddle.nn.Conv2D(padding=1, out_channels=64, kernel_size=(3, 3), in_channels=512)
self.silu61 = paddle.nn.Silu()
self.conv2d64 = paddle.nn.Conv2D(padding=1, out_channels=64, kernel_size=(3, 3), in_channels=64)
self.silu62 = paddle.nn.Silu()
self.conv2d65 = paddle.nn.Conv2D(out_channels=64, kernel_size=(1, 1), in_channels=64)
self.conv2d66 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu63 = paddle.nn.Silu()
self.conv2d67 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu64 = paddle.nn.Silu()
self.conv2d68 = paddle.nn.Conv2D(out_channels=80, kernel_size=(1, 1), in_channels=128)
self.conv2d69 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=256)
self.silu65 = paddle.nn.Silu()
self.conv2d70 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu66 = paddle.nn.Silu()
self.conv2d71 = paddle.nn.Conv2D(out_channels=80, kernel_size=(1, 1), in_channels=128)
self.conv2d72 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=512)
self.silu67 = paddle.nn.Silu()
self.conv2d73 = paddle.nn.Conv2D(padding=1, out_channels=128, kernel_size=(3, 3), in_channels=128)
self.silu68 = paddle.nn.Silu()
self.conv2d74 = paddle.nn.Conv2D(out_channels=80, kernel_size=(1, 1), in_channels=128)
self.softmax0 = paddle.nn.Softmax(axis=1)
self.conv2d75 = paddle.nn.Conv2D(out_channels=1, kernel_size=(1, 1), bias_attr=False, in_channels=16)
self.x949 = self.create_parameter(dtype='float32', shape=(1, 2, 8400), default_initializer=paddle.nn.initializer.Constant(value=0.0))
self.sigmoid0 = paddle.nn.Sigmoid()
def forward(self, x0):
x49 = self.conv2d0(x0)
x50 = self.silu0(x49)
x61 = self.conv2d1(x50)
x62 = self.silu1(x61)
x77 = self.conv2d2(x62)
x78 = self.silu2(x77)
x89 = self.conv2d3(x78)
x90 = self.silu3(x89)
x98 = self.conv2d4(x90)
x99 = self.silu4(x98)
x100 = x78 + x99
x108 = self.conv2d5(x62)
x109 = self.silu5(x108)
x110 = [x100, x109]
x111 = paddle.concat(x=x110, axis=1)
x119 = self.conv2d6(x111)
x120 = self.silu6(x119)
x131 = self.conv2d7(x120)
x132 = self.silu7(x131)
x147 = self.conv2d8(x132)
x148 = self.silu8(x147)
x160 = self.conv2d9(x148)
x161 = self.silu9(x160)
x169 = self.conv2d10(x161)
x170 = self.silu10(x169)
x171 = x148 + x170
x181 = self.conv2d11(x171)
x182 = self.silu11(x181)
x190 = self.conv2d12(x182)
x191 = self.silu12(x190)
x192 = x171 + x191
x200 = self.conv2d13(x132)
x201 = self.silu13(x200)
x202 = [x192, x201]
x203 = paddle.concat(x=x202, axis=1)
x211 = self.conv2d14(x203)
x212 = self.silu14(x211)
x223 = self.conv2d15(x212)
x224 = self.silu15(x223)
x239 = self.conv2d16(x224)
x240 = self.silu16(x239)
x253 = self.conv2d17(x240)
x254 = self.silu17(x253)
x262 = self.conv2d18(x254)
x263 = self.silu18(x262)
x264 = x240 + x263
x274 = self.conv2d19(x264)
x275 = self.silu19(x274)
x283 = self.conv2d20(x275)
x284 = self.silu20(x283)
x285 = x264 + x284
x295 = self.conv2d21(x285)
x296 = self.silu21(x295)
x304 = self.conv2d22(x296)
x305 = self.silu22(x304)
x306 = x285 + x305
x314 = self.conv2d23(x224)
x315 = self.silu23(x314)
x316 = [x306, x315]
x317 = paddle.concat(x=x316, axis=1)
x325 = self.conv2d24(x317)
x326 = self.silu24(x325)
x337 = self.conv2d25(x326)
x338 = self.silu25(x337)
x353 = self.conv2d26(x338)
x354 = self.silu26(x353)
x365 = self.conv2d27(x354)
x366 = self.silu27(x365)
x374 = self.conv2d28(x366)
x375 = self.silu28(x374)
x376 = x354 + x375
x384 = self.conv2d29(x338)
x385 = self.silu29(x384)
x386 = [x376, x385]
x387 = paddle.concat(x=x386, axis=1)
x395 = self.conv2d30(x387)
x396 = self.silu30(x395)
x409 = self.conv2d31(x396)
x410 = self.silu31(x409)
x415 = self.pool2d0(x410)
x420 = self.pool2d1(x415)
x425 = self.pool2d2(x420)
x426 = [x410, x415, x420, x425]
x427 = paddle.concat(x=x426, axis=1)
x435 = self.conv2d32(x427)
x436 = self.silu32(x435)
x447 = self.conv2d33(x436)
x448 = self.silu33(x447)
x450 = [2.0, 2.0]
x451 = paddle.nn.functional.interpolate(x=x448, scale_factor=x450, mode='nearest')
x453 = [x451, x326]
x454 = paddle.concat(x=x453, axis=1)
x469 = self.conv2d34(x454)
x470 = self.silu34(x469)
x481 = self.conv2d35(x470)
x482 = self.silu35(x481)
x490 = self.conv2d36(x482)
x491 = self.silu36(x490)
x499 = self.conv2d37(x454)
x500 = self.silu37(x499)
x501 = [x491, x500]
x502 = paddle.concat(x=x501, axis=1)
x510 = self.conv2d38(x502)
x511 = self.silu38(x510)
x522 = self.conv2d39(x511)
x523 = self.silu39(x522)
x525 = [2.0, 2.0]
x526 = paddle.nn.functional.interpolate(x=x523, scale_factor=x525, mode='nearest')
x528 = [x526, x212]
x529 = paddle.concat(x=x528, axis=1)
x544 = self.conv2d40(x529)
x545 = self.silu40(x544)
x556 = self.conv2d41(x545)
x557 = self.silu41(x556)
x565 = self.conv2d42(x557)
x566 = self.silu42(x565)
x574 = self.conv2d43(x529)
x575 = self.silu43(x574)
x576 = [x566, x575]
x577 = paddle.concat(x=x576, axis=1)
x585 = self.conv2d44(x577)
x586 = self.silu44(x585)
x597 = self.conv2d45(x586)
x598 = self.silu45(x597)
x600 = [x598, x523]
x601 = paddle.concat(x=x600, axis=1)
x616 = self.conv2d46(x601)
x617 = self.silu46(x616)
x628 = self.conv2d47(x617)
x629 = self.silu47(x628)
x637 = self.conv2d48(x629)
x638 = self.silu48(x637)
x646 = self.conv2d49(x601)
x647 = self.silu49(x646)
x648 = [x638, x647]
x649 = paddle.concat(x=x648, axis=1)
x657 = self.conv2d50(x649)
x658 = self.silu50(x657)
x669 = self.conv2d51(x658)
x670 = self.silu51(x669)
x672 = [x670, x448]
x673 = paddle.concat(x=x672, axis=1)
x688 = self.conv2d52(x673)
x689 = self.silu52(x688)
x700 = self.conv2d53(x689)
x701 = self.silu53(x700)
x709 = self.conv2d54(x701)
x710 = self.silu54(x709)
x718 = self.conv2d55(x673)
x719 = self.silu55(x718)
x720 = [x710, x719]
x721 = paddle.concat(x=x720, axis=1)
x729 = self.conv2d56(x721)
x730 = self.silu56(x729)
x731 = self.x731
x732 = 2
x733 = 2
x736 = 1
x762 = self.conv2d57(x586)
x763 = self.silu57(x762)
x771 = self.conv2d58(x763)
x772 = self.silu58(x771)
x779 = self.conv2d59(x772)
x781 = paddle.reshape(x=x779, shape=[1, 64, -1])
x792 = self.conv2d60(x658)
x793 = self.silu59(x792)
x801 = self.conv2d61(x793)
x802 = self.silu60(x801)
x809 = self.conv2d62(x802)
x811 = paddle.reshape(x=x809, shape=[1, 64, -1])
x822 = self.conv2d63(x730)
x823 = self.silu61(x822)
x831 = self.conv2d64(x823)
x832 = self.silu62(x831)
x839 = self.conv2d65(x832)
x841 = paddle.reshape(x=x839, shape=[1, 64, -1])
x842 = [x781, x811, x841]
x843 = paddle.concat(x=x842, axis=-1)
x854 = self.conv2d66(x586)
x855 = self.silu63(x854)
x863 = self.conv2d67(x855)
x864 = self.silu64(x863)
x871 = self.conv2d68(x864)
x873 = paddle.reshape(x=x871, shape=[1, 80, -1])
x884 = self.conv2d69(x658)
x885 = self.silu65(x884)
x893 = self.conv2d70(x885)
x894 = self.silu66(x893)
x901 = self.conv2d71(x894)
x903 = paddle.reshape(x=x901, shape=[1, 80, -1])
x914 = self.conv2d72(x730)
x915 = self.silu67(x914)
x923 = self.conv2d73(x915)
x924 = self.silu68(x923)
x931 = self.conv2d74(x924)
x933 = paddle.reshape(x=x931, shape=[1, 80, -1])
x934 = [x873, x903, x933]
x935 = paddle.concat(x=x934, axis=-1)
x938 = paddle.reshape(x=x843, shape=[1, 4, 16, 8400])
x939_shape = x938.shape
x939_len = len(x939_shape)
x939_list = []
for i in range(x939_len):
x939_list.append(i)
if x733 < 0:
x733_new = x733 + x939_len
else:
x733_new = x733
if x736 < 0:
x736_new = x736 + x939_len
else:
x736_new = x736
x939_list[x733_new] = x736_new
x939_list[x736_new] = x733_new
x939 = paddle.transpose(x=x938, perm=x939_list)
x940 = self.softmax0(x939)
x946 = self.conv2d75(x940)
x948 = paddle.reshape(x=x946, shape=[1, 4, 8400])
x949 = self.x949
x950 = paddle.split(x=x948, num_or_sections=2, axis=1)
x951, x952 = x950
x953 = x949 - x951
x954 = x949 + x952
x955 = x953 + x954
x956 = x955 / x732
x957 = x954 - x953
x958 = [x956, x957]
x959 = paddle.concat(x=x958, axis=1)
x960 = x959 * x731
x961 = self.sigmoid0(x935)
x962 = [x960, x961]
x963 = paddle.concat(x=x962, axis=1)
return x963
def main(x0):
# There are 1 inputs.
# x0: shape-[1, 3, 640, 640], type-float32.
paddle.disable_static()
params = paddle.load(r'/work/models/yolo/yolov5su_paddle_model/model.pdparams')
model = DetectionModel()
model.set_dict(params, use_structured_name=True)
model.eval()
out = model(x0)
return out