-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathxfeatFcn.m
More file actions
3295 lines (2647 loc) · 198 KB
/
Copy pathxfeatFcn.m
File metadata and controls
3295 lines (2647 loc) · 198 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
function [matched_points1, matched_points2, state] = xfeat(input1, input2, params, varargin)
%XFEAT Function implementing an imported ONNX network.
%
% THIS FILE WAS AUTO-GENERATED BY importONNXFunction.
% ONNX Operator Set Version: 15
%
% Variable names in this function are taken from the original ONNX file.
%
% [MATCHED_POINTS1, MATCHED_POINTS2] = xfeat(INPUT1, INPUT2, PARAMS)
% - Evaluates the imported ONNX network XFEAT with input(s)
% INPUT1, INPUT2 and the imported network parameters in PARAMS. Returns
% network output(s) in MATCHED_POINTS1, MATCHED_POINTS2.
%
% [MATCHED_POINTS1, MATCHED_POINTS2, STATE] = xfeat(INPUT1, INPUT2, PARAMS)
% - Additionally returns state variables in STATE. When training,
% use this form and set TRAINING to true.
%
% [__] = xfeat(INPUT1, INPUT2, PARAMS, 'NAME1', VAL1, 'NAME2', VAL2, ...)
% - Specifies additional name-value pairs described below:
%
% 'Training'
% Boolean indicating whether the network is being evaluated for
% prediction or training. If TRAINING is true, state variables
% will be updated.
%
% 'InputDataPermutation'
% 'auto' - Automatically attempt to determine the permutation
% between the dimensions of the input data and the dimensions of
% the ONNX model input. For example, the permutation from HWCN
% (MATLAB standard) to NCHW (ONNX standard) uses the vector
% [4 3 1 2]. See the documentation for IMPORTONNXFUNCTION for
% more information about automatic permutation.
%
% 'none' - Input(s) are passed in the ONNX model format. See 'Inputs'.
%
% numeric vector - The permutation vector describing the
% transformation between input data dimensions and the expected
% ONNX input dimensions.%
% cell array - If the network has multiple inputs, each cell
% contains 'auto', 'none', or a numeric vector.
%
% 'OutputDataPermutation'
% 'auto' - Automatically attempt to determine the permutation
% between the dimensions of the output and a conventional MATLAB
% dimension ordering. For example, the permutation from NC (ONNX
% standard) to CN (MATLAB standard) uses the vector [2 1]. See
% the documentation for IMPORTONNXFUNCTION for more information
% about automatic permutation.
%
% 'none' - Return output(s) as given by the ONNX model. See 'Outputs'.
%
% numeric vector - The permutation vector describing the
% transformation between the ONNX output dimensions and the
% desired output dimensions.%
% cell array - If the network has multiple outputs, each cell
% contains 'auto', 'none' or a numeric vector.
%
% Inputs:
% -------
% INPUT1, INPUT2
% - Input(s) to the ONNX network.
% The input size(s) expected by the ONNX file are:
% INPUT1: [1, 3, height, width] Type: FLOAT
% INPUT2: [1, 3, height, width] Type: FLOAT
% By default, the function will try to permute the input(s)
% into this dimension ordering. If the default is incorrect,
% use the 'InputDataPermutation' argument to control the
% permutation.
%
%
% PARAMS - Network parameters returned by 'importONNXFunction'.
%
%
% Outputs:
% --------
% MATCHED_POINTS1, MATCHED_POINTS2
% - Output(s) of the ONNX network.
% Without permutation, the size(s) of the outputs are:
% MATCHED_POINTS1: [num_matches, 2] Type: FLOAT
% MATCHED_POINTS2: [num_matches, 2] Type: FLOAT
% By default, the function will try to permute the output(s)
% from this dimension ordering into a conventional MATLAB
% ordering. If the default is incorrect, use the
% 'OutputDataPermutation' argument to control the permutation.
%
% STATE - (Optional) State variables. When TRAINING is true, these will
% have been updated from the original values in PARAMS.State.
%
%
% See also importONNXFunction
% Preprocess the input data and arguments:
[input1, input2, Training, outputDataPerms, anyDlarrayInputs] = preprocessInput(input1, input2, params, varargin{:});
% Put all variables into a single struct to implement dynamic scoping:
[Vars, NumDims] = packageVariables(params, {'input1', 'input2'}, {input1, input2}, [4 4]);
% Call the top-level graph function:
[matched_points1, matched_points2, matched_points1NumDims, matched_points2NumDims, state] = main_graphGraph1000(input1, input2, NumDims.input1, NumDims.input2, Vars, NumDims, Training, params.State);
% Postprocess the output data
[matched_points1, matched_points2] = postprocessOutput(matched_points1, matched_points2, outputDataPerms, anyDlarrayInputs, Training, varargin{:});
end
function [matched_points1, matched_points2, matched_points1NumDims1320, matched_points2NumDims1321, state] = main_graphGraph1000(input1, input2, input1NumDims1318, input2NumDims1319, Vars, NumDims, Training, state)
% Function implementing the graph 'main_graphGraph1000'
% Update Vars and NumDims from the graph's formal input parameters. Note that state variables are already in Vars.
Vars.input1 = input1;
NumDims.input1 = input1NumDims1318;
Vars.input2 = input2;
NumDims.input2 = input2NumDims1319;
% Execute the operators:
% Resize:
[DLTScales, DLTSizes, dataFormat, Method, GeometricTransformMode, NearestRoundingMode, NumDims.x_Resize_output_0] = prepareResize11Args(dlarray([]), Vars.x_Constant_output_0, dlarray([]), "half_pixel", "linear", "floor", NumDims.input1);
if isempty(DLTScales)
Vars.x_Resize_output_0 = dlresize(Vars.input1, 'OutputSize', DLTSizes, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
else
Vars.x_Resize_output_0 = dlresize(Vars.input1, 'Scale', DLTScales, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
end
% Resize:
[DLTScales, DLTSizes, dataFormat, Method, GeometricTransformMode, NearestRoundingMode, NumDims.x_Resize_1_output_0] = prepareResize11Args(dlarray([]), Vars.x_Constant_1_output_0, dlarray([]), "half_pixel", "linear", "floor", NumDims.input1);
if isempty(DLTScales)
Vars.x_Resize_1_output_0 = dlresize(Vars.input1, 'OutputSize', DLTSizes, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
else
Vars.x_Resize_1_output_0 = dlresize(Vars.input1, 'Scale', DLTScales, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
end
% Shape:
[Vars.x_Shape_output_0, NumDims.x_Shape_output_0] = onnxShape(Vars.x_Resize_output_0, NumDims.x_Resize_output_0, 0, NumDims.x_Resize_output_0+1);
% Gather:
[Vars.x_Gather_output_0, NumDims.x_Gather_output_0] = onnxGather(Vars.x_Shape_output_0, Vars.x_Constant_2_output_0, 0, NumDims.x_Shape_output_0, NumDims.x_Constant_2_output_0);
% Gather:
[Vars.x_Gather_1_output_0, NumDims.x_Gather_1_output_0] = onnxGather(Vars.x_Shape_output_0, Vars.x_Constant_3_output_0, 0, NumDims.x_Shape_output_0, NumDims.x_Constant_3_output_0);
% Div:
Vars.x_Div_output_0 = fix(Vars.x_Gather_output_0 ./ Vars.x_Constant_4_output_0);
NumDims.x_Div_output_0 = max(NumDims.x_Gather_output_0, NumDims.x_Constant_4_output_0);
% Mul:
Vars.x_Mul_output_0 = Vars.x_Div_output_0 .* Vars.x_Constant_4_output_0;
NumDims.x_Mul_output_0 = max(NumDims.x_Div_output_0, NumDims.x_Constant_4_output_0);
% Div:
Vars.x_Div_1_output_0 = fix(Vars.x_Gather_1_output_0 ./ Vars.x_Constant_4_output_0);
NumDims.x_Div_1_output_0 = max(NumDims.x_Gather_1_output_0, NumDims.x_Constant_4_output_0);
% Mul:
Vars.x_Mul_1_output_0 = Vars.x_Div_1_output_0 .* Vars.x_Constant_4_output_0;
NumDims.x_Mul_1_output_0 = max(NumDims.x_Div_1_output_0, NumDims.x_Constant_4_output_0);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_output_0] = prepareUnsqueezeArgs(Vars.x_Mul_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_Mul_output_0);
Vars.x_Unsqueeze_output_0 = reshape(Vars.x_Mul_output_0, shape);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_1_output_0] = prepareUnsqueezeArgs(Vars.x_Mul_1_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_Mul_1_output_0);
Vars.x_Unsqueeze_1_output_0 = reshape(Vars.x_Mul_1_output_0, shape);
% Concat:
[Vars.x_Concat_1_output_0, NumDims.x_Concat_1_output_0] = onnxConcat(0, {Vars.x_v_1924, Vars.x_Unsqueeze_output_0, Vars.x_Unsqueeze_1_output_0}, [NumDims.x_v_1924, NumDims.x_Unsqueeze_output_0, NumDims.x_Unsqueeze_1_output_0]);
% Resize:
[DLTScales, DLTSizes, dataFormat, Method, GeometricTransformMode, NearestRoundingMode, NumDims.x_Resize_2_output_0] = prepareResize11Args(dlarray([]), dlarray([]), Vars.x_Concat_1_output_0, "half_pixel", "linear", "floor", NumDims.x_Resize_output_0);
if isempty(DLTScales)
Vars.x_Resize_2_output_0 = dlresize(Vars.x_Resize_output_0, 'OutputSize', DLTSizes, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
else
Vars.x_Resize_2_output_0 = dlresize(Vars.x_Resize_output_0, 'Scale', DLTScales, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
end
% ReduceMean:
dims = prepareReduceArgs(Vars.ReduceMeanAxes1001, NumDims.x_Resize_2_output_0);
Vars.x_net_ReduceMean_output_0 = mean(Vars.x_Resize_2_output_0, dims);
NumDims.x_net_ReduceMean_output_0 = NumDims.x_Resize_2_output_0;
% InstanceNormalization:
if NumDims.x_net_ReduceMean_output_0 > 1
Vars.x_net_norm_InstanceNormalization_output_ = instancenorm(Vars.x_net_ReduceMean_output_0, Vars.x_net_norm_Constant_1_output_0, Vars.x_net_norm_Constant_output_0, 'Epsilon', 0.000010, 'DataFormat', [repmat('S',[1 NumDims.x_net_ReduceMean_output_0-2]),'CB']);
end
NumDims.x_net_norm_InstanceNormalization_output_ = NumDims.x_net_ReduceMean_output_0;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block1_block1_0_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1526, Vars.onnx__Conv_1527, Vars.ConvStride1002, Vars.ConvDilationFactor1003, Vars.ConvPadding1004, 1, NumDims.x_net_norm_InstanceNormalization_output_, NumDims.onnx__Conv_1526);
Vars.x_net_block1_block1_0_layer_layer_0_Co_1 = dlconv(Vars.x_net_norm_InstanceNormalization_output_, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block1_block1_0_layer_layer_2_Re_1 = relu(Vars.x_net_block1_block1_0_layer_layer_0_Co_1);
NumDims.x_net_block1_block1_0_layer_layer_2_Re_1 = NumDims.x_net_block1_block1_0_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block1_block1_1_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1529, Vars.onnx__Conv_1530, Vars.ConvStride1005, Vars.ConvDilationFactor1006, Vars.ConvPadding1007, 1, NumDims.x_net_block1_block1_0_layer_layer_2_Re_1, NumDims.onnx__Conv_1529);
Vars.x_net_block1_block1_1_layer_layer_0_Co_1 = dlconv(Vars.x_net_block1_block1_0_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block1_block1_1_layer_layer_2_Re_1 = relu(Vars.x_net_block1_block1_1_layer_layer_0_Co_1);
NumDims.x_net_block1_block1_1_layer_layer_2_Re_1 = NumDims.x_net_block1_block1_1_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block1_block1_2_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1532, Vars.onnx__Conv_1533, Vars.ConvStride1008, Vars.ConvDilationFactor1009, Vars.ConvPadding1010, 1, NumDims.x_net_block1_block1_1_layer_layer_2_Re_1, NumDims.onnx__Conv_1532);
Vars.x_net_block1_block1_2_layer_layer_0_Co_1 = dlconv(Vars.x_net_block1_block1_1_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block1_block1_2_layer_layer_2_Re_1 = relu(Vars.x_net_block1_block1_2_layer_layer_0_Co_1);
NumDims.x_net_block1_block1_2_layer_layer_2_Re_1 = NumDims.x_net_block1_block1_2_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block1_block1_3_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1535, Vars.onnx__Conv_1536, Vars.ConvStride1011, Vars.ConvDilationFactor1012, Vars.ConvPadding1013, 1, NumDims.x_net_block1_block1_2_layer_layer_2_Re_1, NumDims.onnx__Conv_1535);
Vars.x_net_block1_block1_3_layer_layer_0_Co_1 = dlconv(Vars.x_net_block1_block1_2_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block1_block1_3_layer_layer_2_Re_1 = relu(Vars.x_net_block1_block1_3_layer_layer_0_Co_1);
NumDims.x_net_block1_block1_3_layer_layer_2_Re_1 = NumDims.x_net_block1_block1_3_layer_layer_0_Co_1;
% AveragePool:
[poolSize, stride, padding, paddingValue, dataFormat, NumDims.x_net_skip1_skip1_0_AveragePool_output_0] = prepareAveragePoolArgs(Vars.AveragePoolPoolSize1014, Vars.AveragePoolStride1015, Vars.AveragePoolPadding1016, 1, NumDims.x_net_norm_InstanceNormalization_output_);
Vars.x_net_skip1_skip1_0_AveragePool_output_0 = avgpool(Vars.x_net_norm_InstanceNormalization_output_, poolSize, 'Stride', stride, 'Padding', padding, 'PaddingValue', paddingValue, 'DataFormat', dataFormat);
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_skip1_skip1_1_Conv_output_0] = prepareConvArgs(Vars.net_skip1_1_weight, Vars.net_skip1_1_bias, Vars.ConvStride1017, Vars.ConvDilationFactor1018, Vars.ConvPadding1019, 1, NumDims.x_net_skip1_skip1_0_AveragePool_output_0, NumDims.net_skip1_1_weight);
Vars.x_net_skip1_skip1_1_Conv_output_0 = dlconv(Vars.x_net_skip1_skip1_0_AveragePool_output_0, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Add:
Vars.x_net_Add_output_0 = Vars.x_net_block1_block1_3_layer_layer_2_Re_1 + Vars.x_net_skip1_skip1_1_Conv_output_0;
NumDims.x_net_Add_output_0 = max(NumDims.x_net_block1_block1_3_layer_layer_2_Re_1, NumDims.x_net_skip1_skip1_1_Conv_output_0);
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block2_block2_0_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1538, Vars.onnx__Conv_1539, Vars.ConvStride1020, Vars.ConvDilationFactor1021, Vars.ConvPadding1022, 1, NumDims.x_net_Add_output_0, NumDims.onnx__Conv_1538);
Vars.x_net_block2_block2_0_layer_layer_0_Co_1 = dlconv(Vars.x_net_Add_output_0, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block2_block2_0_layer_layer_2_Re_1 = relu(Vars.x_net_block2_block2_0_layer_layer_0_Co_1);
NumDims.x_net_block2_block2_0_layer_layer_2_Re_1 = NumDims.x_net_block2_block2_0_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block2_block2_1_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1541, Vars.onnx__Conv_1542, Vars.ConvStride1023, Vars.ConvDilationFactor1024, Vars.ConvPadding1025, 1, NumDims.x_net_block2_block2_0_layer_layer_2_Re_1, NumDims.onnx__Conv_1541);
Vars.x_net_block2_block2_1_layer_layer_0_Co_1 = dlconv(Vars.x_net_block2_block2_0_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block2_block2_1_layer_layer_2_Re_1 = relu(Vars.x_net_block2_block2_1_layer_layer_0_Co_1);
NumDims.x_net_block2_block2_1_layer_layer_2_Re_1 = NumDims.x_net_block2_block2_1_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block3_block3_0_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1544, Vars.onnx__Conv_1545, Vars.ConvStride1026, Vars.ConvDilationFactor1027, Vars.ConvPadding1028, 1, NumDims.x_net_block2_block2_1_layer_layer_2_Re_1, NumDims.onnx__Conv_1544);
Vars.x_net_block3_block3_0_layer_layer_0_Co_1 = dlconv(Vars.x_net_block2_block2_1_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block3_block3_0_layer_layer_2_Re_1 = relu(Vars.x_net_block3_block3_0_layer_layer_0_Co_1);
NumDims.x_net_block3_block3_0_layer_layer_2_Re_1 = NumDims.x_net_block3_block3_0_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block3_block3_1_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1547, Vars.onnx__Conv_1548, Vars.ConvStride1029, Vars.ConvDilationFactor1030, Vars.ConvPadding1031, 1, NumDims.x_net_block3_block3_0_layer_layer_2_Re_1, NumDims.onnx__Conv_1547);
Vars.x_net_block3_block3_1_layer_layer_0_Co_1 = dlconv(Vars.x_net_block3_block3_0_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block3_block3_1_layer_layer_2_Re_1 = relu(Vars.x_net_block3_block3_1_layer_layer_0_Co_1);
NumDims.x_net_block3_block3_1_layer_layer_2_Re_1 = NumDims.x_net_block3_block3_1_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block3_block3_2_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1550, Vars.onnx__Conv_1551, Vars.ConvStride1032, Vars.ConvDilationFactor1033, Vars.ConvPadding1034, 1, NumDims.x_net_block3_block3_1_layer_layer_2_Re_1, NumDims.onnx__Conv_1550);
Vars.x_net_block3_block3_2_layer_layer_0_Co_1 = dlconv(Vars.x_net_block3_block3_1_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block3_block3_2_layer_layer_2_Re_1 = relu(Vars.x_net_block3_block3_2_layer_layer_0_Co_1);
NumDims.x_net_block3_block3_2_layer_layer_2_Re_1 = NumDims.x_net_block3_block3_2_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block4_block4_0_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1553, Vars.onnx__Conv_1554, Vars.ConvStride1035, Vars.ConvDilationFactor1036, Vars.ConvPadding1037, 1, NumDims.x_net_block3_block3_2_layer_layer_2_Re_1, NumDims.onnx__Conv_1553);
Vars.x_net_block4_block4_0_layer_layer_0_Co_1 = dlconv(Vars.x_net_block3_block3_2_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block4_block4_0_layer_layer_2_Re_1 = relu(Vars.x_net_block4_block4_0_layer_layer_0_Co_1);
NumDims.x_net_block4_block4_0_layer_layer_2_Re_1 = NumDims.x_net_block4_block4_0_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block4_block4_1_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1556, Vars.onnx__Conv_1557, Vars.ConvStride1038, Vars.ConvDilationFactor1039, Vars.ConvPadding1040, 1, NumDims.x_net_block4_block4_0_layer_layer_2_Re_1, NumDims.onnx__Conv_1556);
Vars.x_net_block4_block4_1_layer_layer_0_Co_1 = dlconv(Vars.x_net_block4_block4_0_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block4_block4_1_layer_layer_2_Re_1 = relu(Vars.x_net_block4_block4_1_layer_layer_0_Co_1);
NumDims.x_net_block4_block4_1_layer_layer_2_Re_1 = NumDims.x_net_block4_block4_1_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block4_block4_2_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1559, Vars.onnx__Conv_1560, Vars.ConvStride1041, Vars.ConvDilationFactor1042, Vars.ConvPadding1043, 1, NumDims.x_net_block4_block4_1_layer_layer_2_Re_1, NumDims.onnx__Conv_1559);
Vars.x_net_block4_block4_2_layer_layer_0_Co_1 = dlconv(Vars.x_net_block4_block4_1_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block4_block4_2_layer_layer_2_Re_1 = relu(Vars.x_net_block4_block4_2_layer_layer_0_Co_1);
NumDims.x_net_block4_block4_2_layer_layer_2_Re_1 = NumDims.x_net_block4_block4_2_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block5_block5_0_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1562, Vars.onnx__Conv_1563, Vars.ConvStride1044, Vars.ConvDilationFactor1045, Vars.ConvPadding1046, 1, NumDims.x_net_block4_block4_2_layer_layer_2_Re_1, NumDims.onnx__Conv_1562);
Vars.x_net_block5_block5_0_layer_layer_0_Co_1 = dlconv(Vars.x_net_block4_block4_2_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block5_block5_0_layer_layer_2_Re_1 = relu(Vars.x_net_block5_block5_0_layer_layer_0_Co_1);
NumDims.x_net_block5_block5_0_layer_layer_2_Re_1 = NumDims.x_net_block5_block5_0_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block5_block5_1_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1565, Vars.onnx__Conv_1566, Vars.ConvStride1047, Vars.ConvDilationFactor1048, Vars.ConvPadding1049, 1, NumDims.x_net_block5_block5_0_layer_layer_2_Re_1, NumDims.onnx__Conv_1565);
Vars.x_net_block5_block5_1_layer_layer_0_Co_1 = dlconv(Vars.x_net_block5_block5_0_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block5_block5_1_layer_layer_2_Re_1 = relu(Vars.x_net_block5_block5_1_layer_layer_0_Co_1);
NumDims.x_net_block5_block5_1_layer_layer_2_Re_1 = NumDims.x_net_block5_block5_1_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block5_block5_2_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1568, Vars.onnx__Conv_1569, Vars.ConvStride1050, Vars.ConvDilationFactor1051, Vars.ConvPadding1052, 1, NumDims.x_net_block5_block5_1_layer_layer_2_Re_1, NumDims.onnx__Conv_1568);
Vars.x_net_block5_block5_2_layer_layer_0_Co_1 = dlconv(Vars.x_net_block5_block5_1_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block5_block5_2_layer_layer_2_Re_1 = relu(Vars.x_net_block5_block5_2_layer_layer_0_Co_1);
NumDims.x_net_block5_block5_2_layer_layer_2_Re_1 = NumDims.x_net_block5_block5_2_layer_layer_0_Co_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block5_block5_3_layer_layer_0_Co_1] = prepareConvArgs(Vars.onnx__Conv_1571, Vars.onnx__Conv_1572, Vars.ConvStride1053, Vars.ConvDilationFactor1054, Vars.ConvPadding1055, 1, NumDims.x_net_block5_block5_2_layer_layer_2_Re_1, NumDims.onnx__Conv_1571);
Vars.x_net_block5_block5_3_layer_layer_0_Co_1 = dlconv(Vars.x_net_block5_block5_2_layer_layer_2_Re_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block5_block5_3_layer_layer_2_Re_1 = relu(Vars.x_net_block5_block5_3_layer_layer_0_Co_1);
NumDims.x_net_block5_block5_3_layer_layer_2_Re_1 = NumDims.x_net_block5_block5_3_layer_layer_0_Co_1;
% Shape:
[Vars.x_net_Shape_output_0, NumDims.x_net_Shape_output_0] = onnxShape(Vars.x_net_block3_block3_2_layer_layer_2_Re_1, NumDims.x_net_block3_block3_2_layer_layer_2_Re_1, 0, NumDims.x_net_block3_block3_2_layer_layer_2_Re_1+1);
% Gather:
[Vars.x_net_Gather_output_0, NumDims.x_net_Gather_output_0] = onnxGather(Vars.x_net_Shape_output_0, Vars.x_Constant_2_output_0, 0, NumDims.x_net_Shape_output_0, NumDims.x_Constant_2_output_0);
% Gather:
[Vars.x_net_Gather_1_output_0, NumDims.x_net_Gather_1_output_0] = onnxGather(Vars.x_net_Shape_output_0, Vars.x_Constant_3_output_0, 0, NumDims.x_net_Shape_output_0, NumDims.x_Constant_3_output_0);
% Unsqueeze:
[shape, NumDims.x_net_Unsqueeze_output_0] = prepareUnsqueezeArgs(Vars.x_net_Gather_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_net_Gather_output_0);
Vars.x_net_Unsqueeze_output_0 = reshape(Vars.x_net_Gather_output_0, shape);
% Unsqueeze:
[shape, NumDims.x_net_Unsqueeze_1_output_0] = prepareUnsqueezeArgs(Vars.x_net_Gather_1_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_net_Gather_1_output_0);
Vars.x_net_Unsqueeze_1_output_0 = reshape(Vars.x_net_Gather_1_output_0, shape);
% Shape:
[Vars.x_net_Shape_2_output_0, NumDims.x_net_Shape_2_output_0] = onnxShape(Vars.x_net_block4_block4_2_layer_layer_2_Re_1, NumDims.x_net_block4_block4_2_layer_layer_2_Re_1, 0, NumDims.x_net_block4_block4_2_layer_layer_2_Re_1+1);
% Slice:
[Indices, NumDims.x_net_Slice_output_0] = prepareSliceArgs(Vars.x_net_Shape_2_output_0, Vars.onnx__Unsqueeze_154, Vars.x_net_Constant_4_output_0, Vars.onnx__Unsqueeze_154, '', NumDims.x_net_Shape_2_output_0);
Vars.x_net_Slice_output_0 = subsref(Vars.x_net_Shape_2_output_0, Indices);
% Concat:
[Vars.x_net_Concat_1_output_0, NumDims.x_net_Concat_1_output_0] = onnxConcat(0, {Vars.x_net_Slice_output_0, Vars.x_net_Unsqueeze_output_0, Vars.x_net_Unsqueeze_1_output_0}, [NumDims.x_net_Slice_output_0, NumDims.x_net_Unsqueeze_output_0, NumDims.x_net_Unsqueeze_1_output_0]);
% Resize:
[DLTScales, DLTSizes, dataFormat, Method, GeometricTransformMode, NearestRoundingMode, NumDims.x_net_Resize_output_0] = prepareResize11Args(dlarray([]), dlarray([]), Vars.x_net_Concat_1_output_0, "half_pixel", "linear", "floor", NumDims.x_net_block4_block4_2_layer_layer_2_Re_1);
if isempty(DLTScales)
Vars.x_net_Resize_output_0 = dlresize(Vars.x_net_block4_block4_2_layer_layer_2_Re_1, 'OutputSize', DLTSizes, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
else
Vars.x_net_Resize_output_0 = dlresize(Vars.x_net_block4_block4_2_layer_layer_2_Re_1, 'Scale', DLTScales, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
end
% Shape:
[Vars.x_net_Shape_5_output_0, NumDims.x_net_Shape_5_output_0] = onnxShape(Vars.x_net_block5_block5_3_layer_layer_2_Re_1, NumDims.x_net_block5_block5_3_layer_layer_2_Re_1, 0, NumDims.x_net_block5_block5_3_layer_layer_2_Re_1+1);
% Slice:
[Indices, NumDims.x_net_Slice_1_output_0] = prepareSliceArgs(Vars.x_net_Shape_5_output_0, Vars.onnx__Unsqueeze_154, Vars.x_net_Constant_4_output_0, Vars.onnx__Unsqueeze_154, '', NumDims.x_net_Shape_5_output_0);
Vars.x_net_Slice_1_output_0 = subsref(Vars.x_net_Shape_5_output_0, Indices);
% Concat:
[Vars.x_net_Concat_3_output_0, NumDims.x_net_Concat_3_output_0] = onnxConcat(0, {Vars.x_net_Slice_1_output_0, Vars.x_net_Unsqueeze_output_0, Vars.x_net_Unsqueeze_1_output_0}, [NumDims.x_net_Slice_1_output_0, NumDims.x_net_Unsqueeze_output_0, NumDims.x_net_Unsqueeze_1_output_0]);
% Resize:
[DLTScales, DLTSizes, dataFormat, Method, GeometricTransformMode, NearestRoundingMode, NumDims.x_net_Resize_1_output_0] = prepareResize11Args(dlarray([]), dlarray([]), Vars.x_net_Concat_3_output_0, "half_pixel", "linear", "floor", NumDims.x_net_block5_block5_3_layer_layer_2_Re_1);
if isempty(DLTScales)
Vars.x_net_Resize_1_output_0 = dlresize(Vars.x_net_block5_block5_3_layer_layer_2_Re_1, 'OutputSize', DLTSizes, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
else
Vars.x_net_Resize_1_output_0 = dlresize(Vars.x_net_block5_block5_3_layer_layer_2_Re_1, 'Scale', DLTScales, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
end
% Add:
Vars.x_net_Add_1_output_0 = Vars.x_net_block3_block3_2_layer_layer_2_Re_1 + Vars.x_net_Resize_output_0;
NumDims.x_net_Add_1_output_0 = max(NumDims.x_net_block3_block3_2_layer_layer_2_Re_1, NumDims.x_net_Resize_output_0);
% Add:
Vars.x_net_Add_2_output_0 = Vars.x_net_Add_1_output_0 + Vars.x_net_Resize_1_output_0;
NumDims.x_net_Add_2_output_0 = max(NumDims.x_net_Add_1_output_0, NumDims.x_net_Resize_1_output_0);
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block_fusion_block_fusion_0_lay_1] = prepareConvArgs(Vars.onnx__Conv_1574, Vars.onnx__Conv_1575, Vars.ConvStride1056, Vars.ConvDilationFactor1057, Vars.ConvPadding1058, 1, NumDims.x_net_Add_2_output_0, NumDims.onnx__Conv_1574);
Vars.x_net_block_fusion_block_fusion_0_lay_1 = dlconv(Vars.x_net_Add_2_output_0, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block_fusion_block_fusion_0_lay_9 = relu(Vars.x_net_block_fusion_block_fusion_0_lay_1);
NumDims.x_net_block_fusion_block_fusion_0_lay_9 = NumDims.x_net_block_fusion_block_fusion_0_lay_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block_fusion_block_fusion_1_lay_1] = prepareConvArgs(Vars.onnx__Conv_1577, Vars.onnx__Conv_1578, Vars.ConvStride1059, Vars.ConvDilationFactor1060, Vars.ConvPadding1061, 1, NumDims.x_net_block_fusion_block_fusion_0_lay_9, NumDims.onnx__Conv_1577);
Vars.x_net_block_fusion_block_fusion_1_lay_1 = dlconv(Vars.x_net_block_fusion_block_fusion_0_lay_9, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block_fusion_block_fusion_1_lay_9 = relu(Vars.x_net_block_fusion_block_fusion_1_lay_1);
NumDims.x_net_block_fusion_block_fusion_1_lay_9 = NumDims.x_net_block_fusion_block_fusion_1_lay_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block_fusion_block_fusion_2_Conv_o] = prepareConvArgs(Vars.net_block_fusion_2_weight, Vars.net_block_fusion_2_bias, Vars.ConvStride1062, Vars.ConvDilationFactor1063, Vars.ConvPadding1064, 1, NumDims.x_net_block_fusion_block_fusion_1_lay_9, NumDims.net_block_fusion_2_weight);
Vars.x_net_block_fusion_block_fusion_2_Conv_o = dlconv(Vars.x_net_block_fusion_block_fusion_1_lay_9, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_heatmap_head_heatmap_head_0_lay_1] = prepareConvArgs(Vars.onnx__Conv_1580, Vars.onnx__Conv_1581, Vars.ConvStride1065, Vars.ConvDilationFactor1066, Vars.ConvPadding1067, 1, NumDims.x_net_block_fusion_block_fusion_2_Conv_o, NumDims.onnx__Conv_1580);
Vars.x_net_heatmap_head_heatmap_head_0_lay_1 = dlconv(Vars.x_net_block_fusion_block_fusion_2_Conv_o, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_heatmap_head_heatmap_head_0_lay_9 = relu(Vars.x_net_heatmap_head_heatmap_head_0_lay_1);
NumDims.x_net_heatmap_head_heatmap_head_0_lay_9 = NumDims.x_net_heatmap_head_heatmap_head_0_lay_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_heatmap_head_heatmap_head_1_lay_1] = prepareConvArgs(Vars.onnx__Conv_1583, Vars.onnx__Conv_1584, Vars.ConvStride1068, Vars.ConvDilationFactor1069, Vars.ConvPadding1070, 1, NumDims.x_net_heatmap_head_heatmap_head_0_lay_9, NumDims.onnx__Conv_1583);
Vars.x_net_heatmap_head_heatmap_head_1_lay_1 = dlconv(Vars.x_net_heatmap_head_heatmap_head_0_lay_9, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_heatmap_head_heatmap_head_1_lay_9 = relu(Vars.x_net_heatmap_head_heatmap_head_1_lay_1);
NumDims.x_net_heatmap_head_heatmap_head_1_lay_9 = NumDims.x_net_heatmap_head_heatmap_head_1_lay_1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_heatmap_head_heatmap_head_2_Conv_o] = prepareConvArgs(Vars.net_heatmap_head_2_weight, Vars.net_heatmap_head_2_bias, Vars.ConvStride1071, Vars.ConvDilationFactor1072, Vars.ConvPadding1073, 1, NumDims.x_net_heatmap_head_heatmap_head_1_lay_9, NumDims.net_heatmap_head_2_weight);
Vars.x_net_heatmap_head_heatmap_head_2_Conv_o = dlconv(Vars.x_net_heatmap_head_heatmap_head_1_lay_9, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Sigmoid:
Vars.x_net_heatmap_head_heatmap_head_3_Sigm_1 = sigmoid(Vars.x_net_heatmap_head_heatmap_head_2_Conv_o);
NumDims.x_net_heatmap_head_heatmap_head_3_Sigm_1 = NumDims.x_net_heatmap_head_heatmap_head_2_Conv_o;
% Shape:
[Vars.x_Shape_3_output_0, NumDims.x_Shape_3_output_0] = onnxShape(Vars.x_net_block_fusion_block_fusion_2_Conv_o, NumDims.x_net_block_fusion_block_fusion_2_Conv_o, 0, NumDims.x_net_block_fusion_block_fusion_2_Conv_o+1);
% Gather:
[Vars.x_Gather_2_output_0, NumDims.x_Gather_2_output_0] = onnxGather(Vars.x_Shape_3_output_0, Vars.x_Constant_11_output_0, 0, NumDims.x_Shape_3_output_0, NumDims.x_Constant_11_output_0);
% Gather:
[Vars.x_Gather_4_output_0, NumDims.x_Gather_4_output_0] = onnxGather(Vars.x_Shape_3_output_0, Vars.x_Constant_2_output_0, 0, NumDims.x_Shape_3_output_0, NumDims.x_Constant_2_output_0);
% Gather:
[Vars.x_Gather_5_output_0, NumDims.x_Gather_5_output_0] = onnxGather(Vars.x_Shape_3_output_0, Vars.x_Constant_3_output_0, 0, NumDims.x_Shape_3_output_0, NumDims.x_Constant_3_output_0);
% Range:
Vars.x_Range_output_0 = dlarray(Vars.x_Constant_11_output_0:Vars.x_Constant_17_output_0:Vars.x_Gather_4_output_0-sign(Vars.x_Constant_17_output_0))';
NumDims.x_Range_output_0 = 1;
% Range:
Vars.x_Range_1_output_0 = dlarray(Vars.x_Constant_11_output_0:Vars.x_Constant_17_output_0:Vars.x_Gather_5_output_0-sign(Vars.x_Constant_17_output_0))';
NumDims.x_Range_1_output_0 = 1;
% Shape:
[Vars.x_Shape_7_output_0, NumDims.x_Shape_7_output_0] = onnxShape(Vars.x_Range_output_0, NumDims.x_Range_output_0, 0, NumDims.x_Range_output_0+1);
% Shape:
[Vars.x_Shape_8_output_0, NumDims.x_Shape_8_output_0] = onnxShape(Vars.x_Range_1_output_0, NumDims.x_Range_1_output_0, 0, NumDims.x_Range_1_output_0+1);
% Concat:
[Vars.x_Concat_2_output_0, NumDims.x_Concat_2_output_0] = onnxConcat(0, {Vars.x_Shape_7_output_0, Vars.x_Shape_8_output_0}, [NumDims.x_Shape_7_output_0, NumDims.x_Shape_8_output_0]);
% Reshape:
[shape, NumDims.x_Reshape_2_output_0] = prepareReshapeArgs(Vars.x_Range_output_0, Vars.x_v_1932, NumDims.x_Range_output_0, 0);
Vars.x_Reshape_2_output_0 = reshape(Vars.x_Range_output_0, shape{:});
% Expand:
[shape, NumDims.x_Expand_output_0] = prepareExpandArgs(Vars.x_Concat_2_output_0);
Vars.x_Expand_output_0 = Vars.x_Reshape_2_output_0 + zeros(shape);
% Reshape:
[shape, NumDims.x_Reshape_3_output_0] = prepareReshapeArgs(Vars.x_Range_1_output_0, Vars.x_v_1934, NumDims.x_Range_1_output_0, 0);
Vars.x_Reshape_3_output_0 = reshape(Vars.x_Range_1_output_0, shape{:});
% Expand:
[shape, NumDims.x_Expand_1_output_0] = prepareExpandArgs(Vars.x_Concat_2_output_0);
Vars.x_Expand_1_output_0 = Vars.x_Reshape_3_output_0 + zeros(shape);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_2_output_0] = prepareUnsqueezeArgs(Vars.x_Expand_1_output_0, Vars.x_net_Constant_4_output_0, NumDims.x_Expand_1_output_0);
Vars.x_Unsqueeze_2_output_0 = reshape(Vars.x_Expand_1_output_0, shape);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_3_output_0] = prepareUnsqueezeArgs(Vars.x_Expand_output_0, Vars.x_net_Constant_4_output_0, NumDims.x_Expand_output_0);
Vars.x_Unsqueeze_3_output_0 = reshape(Vars.x_Expand_output_0, shape);
% Concat:
[Vars.x_Concat_5_output_0, NumDims.x_Concat_5_output_0] = onnxConcat(-1, {Vars.x_Unsqueeze_2_output_0, Vars.x_Unsqueeze_3_output_0}, [NumDims.x_Unsqueeze_2_output_0, NumDims.x_Unsqueeze_3_output_0]);
% Reshape:
[shape, NumDims.x_Reshape_4_output_0] = prepareReshapeArgs(Vars.x_Concat_5_output_0, Vars.x_Constant_26_output_0, NumDims.x_Concat_5_output_0, 0);
Vars.x_Reshape_4_output_0 = reshape(Vars.x_Concat_5_output_0, shape{:});
% Mul:
Vars.x_Mul_2_output_0 = Vars.x_Reshape_4_output_0 .* Vars.x_Constant_27_output_0;
NumDims.x_Mul_2_output_0 = max(NumDims.x_Reshape_4_output_0, NumDims.x_Constant_27_output_0);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_4_output_0] = prepareUnsqueezeArgs(Vars.x_Gather_2_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_Gather_2_output_0);
Vars.x_Unsqueeze_4_output_0 = reshape(Vars.x_Gather_2_output_0, shape);
% Concat:
[Vars.x_Concat_6_output_0, NumDims.x_Concat_6_output_0] = onnxConcat(0, {Vars.x_Unsqueeze_4_output_0, Vars.x_Constant_29_output_0, Vars.x_Constant_29_output_0}, [NumDims.x_Unsqueeze_4_output_0, NumDims.x_Constant_29_output_0, NumDims.x_Constant_29_output_0]);
% Equal:
Vars.x_Equal_output_0 = Vars.x_Concat_6_output_0 == Vars.x_Mul_3_output_0;
NumDims.x_Equal_output_0 = max(NumDims.x_Concat_6_output_0, NumDims.x_Mul_3_output_0);
% Where:
[Vars.x_Where_output_0, NumDims.x_Where_output_0] = onnxWhere(Vars.x_Equal_output_0, Vars.x_ConstantOfShape_output_0, Vars.x_Concat_6_output_0, NumDims.x_Equal_output_0, NumDims.x_ConstantOfShape_output_0, NumDims.x_Concat_6_output_0);
% Expand:
[shape, NumDims.x_Expand_2_output_0] = prepareExpandArgs(Vars.x_Where_output_0);
Vars.x_Expand_2_output_0 = Vars.x_Mul_2_output_0 + zeros(shape);
% Transpose:
[perm, NumDims.x_Transpose_output_0] = prepareTransposeArgs(Vars.TransposePerm1074, NumDims.x_net_block_fusion_block_fusion_2_Conv_o);
if ~isempty(perm)
Vars.x_Transpose_output_0 = permute(Vars.x_net_block_fusion_block_fusion_2_Conv_o, perm);
end
% Concat:
[Vars.x_Concat_7_output_0, NumDims.x_Concat_7_output_0] = onnxConcat(0, {Vars.x_Unsqueeze_4_output_0, Vars.x_Constant_29_output_0, Vars.x_Unsqueeze_6_output_0}, [NumDims.x_Unsqueeze_4_output_0, NumDims.x_Constant_29_output_0, NumDims.x_Unsqueeze_6_output_0]);
% Reshape:
[shape, NumDims.x_Reshape_6_output_0] = prepareReshapeArgs(Vars.x_Transpose_output_0, Vars.x_Concat_7_output_0, NumDims.x_Transpose_output_0, 0);
Vars.x_Reshape_6_output_0 = reshape(Vars.x_Transpose_output_0, shape{:});
% Transpose:
[perm, NumDims.x_Transpose_1_output_0] = prepareTransposeArgs(Vars.TransposePerm1075, NumDims.x_net_heatmap_head_heatmap_head_3_Sigm_1);
if ~isempty(perm)
Vars.x_Transpose_1_output_0 = permute(Vars.x_net_heatmap_head_heatmap_head_3_Sigm_1, perm);
end
% Concat:
[Vars.x_Concat_8_output_0, NumDims.x_Concat_8_output_0] = onnxConcat(0, {Vars.x_Unsqueeze_4_output_0, Vars.x_Constant_29_output_0}, [NumDims.x_Unsqueeze_4_output_0, NumDims.x_Constant_29_output_0]);
% Reshape:
[shape, NumDims.x_Reshape_7_output_0] = prepareReshapeArgs(Vars.x_Transpose_1_output_0, Vars.x_Concat_8_output_0, NumDims.x_Transpose_1_output_0, 0);
Vars.x_Reshape_7_output_0 = reshape(Vars.x_Transpose_1_output_0, shape{:});
% TopK:
[Vars.x_TopK_output_0, Vars.x_TopK_output_1, NumDims.x_TopK_output_0, NumDims.x_TopK_output_1] = onnxTopK11(Vars.x_Reshape_7_output_0, Vars.x_Constant_35_output_0, -1, 1, 1, NumDims.x_Reshape_7_output_0);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_8_output_0] = prepareUnsqueezeArgs(Vars.x_TopK_output_1, Vars.x_net_Constant_4_output_0, NumDims.x_TopK_output_1);
Vars.x_Unsqueeze_8_output_0 = reshape(Vars.x_TopK_output_1, shape);
% Expand:
[shape, NumDims.x_Expand_3_output_0] = prepareExpandArgs(Vars.x_Where_1_output_0);
Vars.x_Expand_3_output_0 = Vars.x_Unsqueeze_8_output_0 + zeros(shape);
% GatherElements:
[Vars.x_GatherElements_output_0, NumDims.x_GatherElements_output_0] = onnxGatherElements(Vars.x_Reshape_6_output_0, Vars.x_Expand_3_output_0, 1, NumDims.x_Reshape_6_output_0, NumDims.x_Expand_3_output_0);
% Expand:
[shape, NumDims.x_Expand_4_output_0] = prepareExpandArgs(Vars.x_Where_2_output_0);
Vars.x_Expand_4_output_0 = Vars.x_Unsqueeze_8_output_0 + zeros(shape);
% GatherElements:
[Vars.x_GatherElements_1_output_0, NumDims.x_GatherElements_1_output_0] = onnxGatherElements(Vars.x_Expand_2_output_0, Vars.x_Expand_4_output_0, 1, NumDims.x_Expand_2_output_0, NumDims.x_Expand_4_output_0);
% Cast:
if islogical(Vars.x_GatherElements_1_output_0)
Vars.x_GatherElements_1_output_0 = single(Vars.x_GatherElements_1_output_0);
end
Vars.x_Cast_8_output_0 = single(Vars.x_GatherElements_1_output_0);
NumDims.x_Cast_8_output_0 = NumDims.x_GatherElements_1_output_0;
% Shape:
[Vars.x_Shape_10_output_0, NumDims.x_Shape_10_output_0] = onnxShape(Vars.x_Resize_1_output_0, NumDims.x_Resize_1_output_0, 0, NumDims.x_Resize_1_output_0+1);
% Gather:
[Vars.x_Gather_6_output_0, NumDims.x_Gather_6_output_0] = onnxGather(Vars.x_Shape_10_output_0, Vars.x_Constant_2_output_0, 0, NumDims.x_Shape_10_output_0, NumDims.x_Constant_2_output_0);
% Gather:
[Vars.x_Gather_7_output_0, NumDims.x_Gather_7_output_0] = onnxGather(Vars.x_Shape_10_output_0, Vars.x_Constant_3_output_0, 0, NumDims.x_Shape_10_output_0, NumDims.x_Constant_3_output_0);
% Div:
Vars.x_Div_2_output_0 = fix(Vars.x_Gather_6_output_0 ./ Vars.x_Constant_4_output_0);
NumDims.x_Div_2_output_0 = max(NumDims.x_Gather_6_output_0, NumDims.x_Constant_4_output_0);
% Mul:
Vars.x_Mul_7_output_0 = Vars.x_Div_2_output_0 .* Vars.x_Constant_4_output_0;
NumDims.x_Mul_7_output_0 = max(NumDims.x_Div_2_output_0, NumDims.x_Constant_4_output_0);
% Div:
Vars.x_Div_3_output_0 = fix(Vars.x_Gather_7_output_0 ./ Vars.x_Constant_4_output_0);
NumDims.x_Div_3_output_0 = max(NumDims.x_Gather_7_output_0, NumDims.x_Constant_4_output_0);
% Mul:
Vars.x_Mul_8_output_0 = Vars.x_Div_3_output_0 .* Vars.x_Constant_4_output_0;
NumDims.x_Mul_8_output_0 = max(NumDims.x_Div_3_output_0, NumDims.x_Constant_4_output_0);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_9_output_0] = prepareUnsqueezeArgs(Vars.x_Mul_7_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_Mul_7_output_0);
Vars.x_Unsqueeze_9_output_0 = reshape(Vars.x_Mul_7_output_0, shape);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_10_output_0] = prepareUnsqueezeArgs(Vars.x_Mul_8_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_Mul_8_output_0);
Vars.x_Unsqueeze_10_output_0 = reshape(Vars.x_Mul_8_output_0, shape);
% Concat:
[Vars.x_Concat_10_output_0, NumDims.x_Concat_10_output_0] = onnxConcat(0, {Vars.x_v_1924, Vars.x_Unsqueeze_9_output_0, Vars.x_Unsqueeze_10_output_0}, [NumDims.x_v_1924, NumDims.x_Unsqueeze_9_output_0, NumDims.x_Unsqueeze_10_output_0]);
% Resize:
[DLTScales, DLTSizes, dataFormat, Method, GeometricTransformMode, NearestRoundingMode, NumDims.x_Resize_3_output_0] = prepareResize11Args(dlarray([]), dlarray([]), Vars.x_Concat_10_output_0, "half_pixel", "linear", "floor", NumDims.x_Resize_1_output_0);
if isempty(DLTScales)
Vars.x_Resize_3_output_0 = dlresize(Vars.x_Resize_1_output_0, 'OutputSize', DLTSizes, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
else
Vars.x_Resize_3_output_0 = dlresize(Vars.x_Resize_1_output_0, 'Scale', DLTScales, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
end
% ReduceMean:
dims = prepareReduceArgs(Vars.ReduceMeanAxes1076, NumDims.x_Resize_3_output_0);
Vars.x_net_1_ReduceMean_output_0 = mean(Vars.x_Resize_3_output_0, dims);
NumDims.x_net_1_ReduceMean_output_0 = NumDims.x_Resize_3_output_0;
% InstanceNormalization:
if NumDims.x_net_1_ReduceMean_output_0 > 1
Vars.x_net_norm_1_InstanceNormalization_outpu = instancenorm(Vars.x_net_1_ReduceMean_output_0, Vars.x_net_norm_Constant_1_output_0, Vars.x_net_norm_Constant_output_0, 'Epsilon', 0.000010, 'DataFormat', [repmat('S',[1 NumDims.x_net_1_ReduceMean_output_0-2]),'CB']);
end
NumDims.x_net_norm_1_InstanceNormalization_outpu = NumDims.x_net_1_ReduceMean_output_0;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block1_block1_0_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1526, Vars.onnx__Conv_1527, Vars.ConvStride1077, Vars.ConvDilationFactor1078, Vars.ConvPadding1079, 1, NumDims.x_net_norm_1_InstanceNormalization_outpu, NumDims.onnx__Conv_1526);
Vars.x_net_block1_block1_0_layer_layer_0_1__1 = dlconv(Vars.x_net_norm_1_InstanceNormalization_outpu, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block1_block1_0_layer_layer_2_1__1 = relu(Vars.x_net_block1_block1_0_layer_layer_0_1__1);
NumDims.x_net_block1_block1_0_layer_layer_2_1__1 = NumDims.x_net_block1_block1_0_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block1_block1_1_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1529, Vars.onnx__Conv_1530, Vars.ConvStride1080, Vars.ConvDilationFactor1081, Vars.ConvPadding1082, 1, NumDims.x_net_block1_block1_0_layer_layer_2_1__1, NumDims.onnx__Conv_1529);
Vars.x_net_block1_block1_1_layer_layer_0_1__1 = dlconv(Vars.x_net_block1_block1_0_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block1_block1_1_layer_layer_2_1__1 = relu(Vars.x_net_block1_block1_1_layer_layer_0_1__1);
NumDims.x_net_block1_block1_1_layer_layer_2_1__1 = NumDims.x_net_block1_block1_1_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block1_block1_2_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1532, Vars.onnx__Conv_1533, Vars.ConvStride1083, Vars.ConvDilationFactor1084, Vars.ConvPadding1085, 1, NumDims.x_net_block1_block1_1_layer_layer_2_1__1, NumDims.onnx__Conv_1532);
Vars.x_net_block1_block1_2_layer_layer_0_1__1 = dlconv(Vars.x_net_block1_block1_1_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block1_block1_2_layer_layer_2_1__1 = relu(Vars.x_net_block1_block1_2_layer_layer_0_1__1);
NumDims.x_net_block1_block1_2_layer_layer_2_1__1 = NumDims.x_net_block1_block1_2_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block1_block1_3_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1535, Vars.onnx__Conv_1536, Vars.ConvStride1086, Vars.ConvDilationFactor1087, Vars.ConvPadding1088, 1, NumDims.x_net_block1_block1_2_layer_layer_2_1__1, NumDims.onnx__Conv_1535);
Vars.x_net_block1_block1_3_layer_layer_0_1__1 = dlconv(Vars.x_net_block1_block1_2_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block1_block1_3_layer_layer_2_1__1 = relu(Vars.x_net_block1_block1_3_layer_layer_0_1__1);
NumDims.x_net_block1_block1_3_layer_layer_2_1__1 = NumDims.x_net_block1_block1_3_layer_layer_0_1__1;
% AveragePool:
[poolSize, stride, padding, paddingValue, dataFormat, NumDims.x_net_skip1_skip1_0_1_AveragePool_output] = prepareAveragePoolArgs(Vars.AveragePoolPoolSize1089, Vars.AveragePoolStride1090, Vars.AveragePoolPadding1091, 1, NumDims.x_net_norm_1_InstanceNormalization_outpu);
Vars.x_net_skip1_skip1_0_1_AveragePool_output = avgpool(Vars.x_net_norm_1_InstanceNormalization_outpu, poolSize, 'Stride', stride, 'Padding', padding, 'PaddingValue', paddingValue, 'DataFormat', dataFormat);
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_skip1_skip1_1_1_Conv_output_0] = prepareConvArgs(Vars.net_skip1_1_weight, Vars.net_skip1_1_bias, Vars.ConvStride1092, Vars.ConvDilationFactor1093, Vars.ConvPadding1094, 1, NumDims.x_net_skip1_skip1_0_1_AveragePool_output, NumDims.net_skip1_1_weight);
Vars.x_net_skip1_skip1_1_1_Conv_output_0 = dlconv(Vars.x_net_skip1_skip1_0_1_AveragePool_output, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Add:
Vars.x_net_1_Add_output_0 = Vars.x_net_block1_block1_3_layer_layer_2_1__1 + Vars.x_net_skip1_skip1_1_1_Conv_output_0;
NumDims.x_net_1_Add_output_0 = max(NumDims.x_net_block1_block1_3_layer_layer_2_1__1, NumDims.x_net_skip1_skip1_1_1_Conv_output_0);
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block2_block2_0_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1538, Vars.onnx__Conv_1539, Vars.ConvStride1095, Vars.ConvDilationFactor1096, Vars.ConvPadding1097, 1, NumDims.x_net_1_Add_output_0, NumDims.onnx__Conv_1538);
Vars.x_net_block2_block2_0_layer_layer_0_1__1 = dlconv(Vars.x_net_1_Add_output_0, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block2_block2_0_layer_layer_2_1__1 = relu(Vars.x_net_block2_block2_0_layer_layer_0_1__1);
NumDims.x_net_block2_block2_0_layer_layer_2_1__1 = NumDims.x_net_block2_block2_0_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block2_block2_1_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1541, Vars.onnx__Conv_1542, Vars.ConvStride1098, Vars.ConvDilationFactor1099, Vars.ConvPadding1100, 1, NumDims.x_net_block2_block2_0_layer_layer_2_1__1, NumDims.onnx__Conv_1541);
Vars.x_net_block2_block2_1_layer_layer_0_1__1 = dlconv(Vars.x_net_block2_block2_0_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block2_block2_1_layer_layer_2_1__1 = relu(Vars.x_net_block2_block2_1_layer_layer_0_1__1);
NumDims.x_net_block2_block2_1_layer_layer_2_1__1 = NumDims.x_net_block2_block2_1_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block3_block3_0_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1544, Vars.onnx__Conv_1545, Vars.ConvStride1101, Vars.ConvDilationFactor1102, Vars.ConvPadding1103, 1, NumDims.x_net_block2_block2_1_layer_layer_2_1__1, NumDims.onnx__Conv_1544);
Vars.x_net_block3_block3_0_layer_layer_0_1__1 = dlconv(Vars.x_net_block2_block2_1_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block3_block3_0_layer_layer_2_1__1 = relu(Vars.x_net_block3_block3_0_layer_layer_0_1__1);
NumDims.x_net_block3_block3_0_layer_layer_2_1__1 = NumDims.x_net_block3_block3_0_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block3_block3_1_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1547, Vars.onnx__Conv_1548, Vars.ConvStride1104, Vars.ConvDilationFactor1105, Vars.ConvPadding1106, 1, NumDims.x_net_block3_block3_0_layer_layer_2_1__1, NumDims.onnx__Conv_1547);
Vars.x_net_block3_block3_1_layer_layer_0_1__1 = dlconv(Vars.x_net_block3_block3_0_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block3_block3_1_layer_layer_2_1__1 = relu(Vars.x_net_block3_block3_1_layer_layer_0_1__1);
NumDims.x_net_block3_block3_1_layer_layer_2_1__1 = NumDims.x_net_block3_block3_1_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block3_block3_2_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1550, Vars.onnx__Conv_1551, Vars.ConvStride1107, Vars.ConvDilationFactor1108, Vars.ConvPadding1109, 1, NumDims.x_net_block3_block3_1_layer_layer_2_1__1, NumDims.onnx__Conv_1550);
Vars.x_net_block3_block3_2_layer_layer_0_1__1 = dlconv(Vars.x_net_block3_block3_1_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block3_block3_2_layer_layer_2_1__1 = relu(Vars.x_net_block3_block3_2_layer_layer_0_1__1);
NumDims.x_net_block3_block3_2_layer_layer_2_1__1 = NumDims.x_net_block3_block3_2_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block4_block4_0_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1553, Vars.onnx__Conv_1554, Vars.ConvStride1110, Vars.ConvDilationFactor1111, Vars.ConvPadding1112, 1, NumDims.x_net_block3_block3_2_layer_layer_2_1__1, NumDims.onnx__Conv_1553);
Vars.x_net_block4_block4_0_layer_layer_0_1__1 = dlconv(Vars.x_net_block3_block3_2_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block4_block4_0_layer_layer_2_1__1 = relu(Vars.x_net_block4_block4_0_layer_layer_0_1__1);
NumDims.x_net_block4_block4_0_layer_layer_2_1__1 = NumDims.x_net_block4_block4_0_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block4_block4_1_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1556, Vars.onnx__Conv_1557, Vars.ConvStride1113, Vars.ConvDilationFactor1114, Vars.ConvPadding1115, 1, NumDims.x_net_block4_block4_0_layer_layer_2_1__1, NumDims.onnx__Conv_1556);
Vars.x_net_block4_block4_1_layer_layer_0_1__1 = dlconv(Vars.x_net_block4_block4_0_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block4_block4_1_layer_layer_2_1__1 = relu(Vars.x_net_block4_block4_1_layer_layer_0_1__1);
NumDims.x_net_block4_block4_1_layer_layer_2_1__1 = NumDims.x_net_block4_block4_1_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block4_block4_2_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1559, Vars.onnx__Conv_1560, Vars.ConvStride1116, Vars.ConvDilationFactor1117, Vars.ConvPadding1118, 1, NumDims.x_net_block4_block4_1_layer_layer_2_1__1, NumDims.onnx__Conv_1559);
Vars.x_net_block4_block4_2_layer_layer_0_1__1 = dlconv(Vars.x_net_block4_block4_1_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block4_block4_2_layer_layer_2_1__1 = relu(Vars.x_net_block4_block4_2_layer_layer_0_1__1);
NumDims.x_net_block4_block4_2_layer_layer_2_1__1 = NumDims.x_net_block4_block4_2_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block5_block5_0_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1562, Vars.onnx__Conv_1563, Vars.ConvStride1119, Vars.ConvDilationFactor1120, Vars.ConvPadding1121, 1, NumDims.x_net_block4_block4_2_layer_layer_2_1__1, NumDims.onnx__Conv_1562);
Vars.x_net_block5_block5_0_layer_layer_0_1__1 = dlconv(Vars.x_net_block4_block4_2_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block5_block5_0_layer_layer_2_1__1 = relu(Vars.x_net_block5_block5_0_layer_layer_0_1__1);
NumDims.x_net_block5_block5_0_layer_layer_2_1__1 = NumDims.x_net_block5_block5_0_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block5_block5_1_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1565, Vars.onnx__Conv_1566, Vars.ConvStride1122, Vars.ConvDilationFactor1123, Vars.ConvPadding1124, 1, NumDims.x_net_block5_block5_0_layer_layer_2_1__1, NumDims.onnx__Conv_1565);
Vars.x_net_block5_block5_1_layer_layer_0_1__1 = dlconv(Vars.x_net_block5_block5_0_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block5_block5_1_layer_layer_2_1__1 = relu(Vars.x_net_block5_block5_1_layer_layer_0_1__1);
NumDims.x_net_block5_block5_1_layer_layer_2_1__1 = NumDims.x_net_block5_block5_1_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block5_block5_2_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1568, Vars.onnx__Conv_1569, Vars.ConvStride1125, Vars.ConvDilationFactor1126, Vars.ConvPadding1127, 1, NumDims.x_net_block5_block5_1_layer_layer_2_1__1, NumDims.onnx__Conv_1568);
Vars.x_net_block5_block5_2_layer_layer_0_1__1 = dlconv(Vars.x_net_block5_block5_1_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block5_block5_2_layer_layer_2_1__1 = relu(Vars.x_net_block5_block5_2_layer_layer_0_1__1);
NumDims.x_net_block5_block5_2_layer_layer_2_1__1 = NumDims.x_net_block5_block5_2_layer_layer_0_1__1;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block5_block5_3_layer_layer_0_1__1] = prepareConvArgs(Vars.onnx__Conv_1571, Vars.onnx__Conv_1572, Vars.ConvStride1128, Vars.ConvDilationFactor1129, Vars.ConvPadding1130, 1, NumDims.x_net_block5_block5_2_layer_layer_2_1__1, NumDims.onnx__Conv_1571);
Vars.x_net_block5_block5_3_layer_layer_0_1__1 = dlconv(Vars.x_net_block5_block5_2_layer_layer_2_1__1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block5_block5_3_layer_layer_2_1__1 = relu(Vars.x_net_block5_block5_3_layer_layer_0_1__1);
NumDims.x_net_block5_block5_3_layer_layer_2_1__1 = NumDims.x_net_block5_block5_3_layer_layer_0_1__1;
% Shape:
[Vars.x_net_1_Shape_output_0, NumDims.x_net_1_Shape_output_0] = onnxShape(Vars.x_net_block3_block3_2_layer_layer_2_1__1, NumDims.x_net_block3_block3_2_layer_layer_2_1__1, 0, NumDims.x_net_block3_block3_2_layer_layer_2_1__1+1);
% Gather:
[Vars.x_net_1_Gather_output_0, NumDims.x_net_1_Gather_output_0] = onnxGather(Vars.x_net_1_Shape_output_0, Vars.x_Constant_2_output_0, 0, NumDims.x_net_1_Shape_output_0, NumDims.x_Constant_2_output_0);
% Gather:
[Vars.x_net_1_Gather_1_output_0, NumDims.x_net_1_Gather_1_output_0] = onnxGather(Vars.x_net_1_Shape_output_0, Vars.x_Constant_3_output_0, 0, NumDims.x_net_1_Shape_output_0, NumDims.x_Constant_3_output_0);
% Unsqueeze:
[shape, NumDims.x_net_1_Unsqueeze_output_0] = prepareUnsqueezeArgs(Vars.x_net_1_Gather_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_net_1_Gather_output_0);
Vars.x_net_1_Unsqueeze_output_0 = reshape(Vars.x_net_1_Gather_output_0, shape);
% Unsqueeze:
[shape, NumDims.x_net_1_Unsqueeze_1_output_0] = prepareUnsqueezeArgs(Vars.x_net_1_Gather_1_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_net_1_Gather_1_output_0);
Vars.x_net_1_Unsqueeze_1_output_0 = reshape(Vars.x_net_1_Gather_1_output_0, shape);
% Shape:
[Vars.x_net_1_Shape_2_output_0, NumDims.x_net_1_Shape_2_output_0] = onnxShape(Vars.x_net_block4_block4_2_layer_layer_2_1__1, NumDims.x_net_block4_block4_2_layer_layer_2_1__1, 0, NumDims.x_net_block4_block4_2_layer_layer_2_1__1+1);
% Slice:
[Indices, NumDims.x_net_1_Slice_output_0] = prepareSliceArgs(Vars.x_net_1_Shape_2_output_0, Vars.onnx__Unsqueeze_154, Vars.x_net_Constant_4_output_0, Vars.onnx__Unsqueeze_154, '', NumDims.x_net_1_Shape_2_output_0);
Vars.x_net_1_Slice_output_0 = subsref(Vars.x_net_1_Shape_2_output_0, Indices);
% Concat:
[Vars.x_net_1_Concat_1_output_0, NumDims.x_net_1_Concat_1_output_0] = onnxConcat(0, {Vars.x_net_1_Slice_output_0, Vars.x_net_1_Unsqueeze_output_0, Vars.x_net_1_Unsqueeze_1_output_0}, [NumDims.x_net_1_Slice_output_0, NumDims.x_net_1_Unsqueeze_output_0, NumDims.x_net_1_Unsqueeze_1_output_0]);
% Resize:
[DLTScales, DLTSizes, dataFormat, Method, GeometricTransformMode, NearestRoundingMode, NumDims.x_net_1_Resize_output_0] = prepareResize11Args(dlarray([]), dlarray([]), Vars.x_net_1_Concat_1_output_0, "half_pixel", "linear", "floor", NumDims.x_net_block4_block4_2_layer_layer_2_1__1);
if isempty(DLTScales)
Vars.x_net_1_Resize_output_0 = dlresize(Vars.x_net_block4_block4_2_layer_layer_2_1__1, 'OutputSize', DLTSizes, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
else
Vars.x_net_1_Resize_output_0 = dlresize(Vars.x_net_block4_block4_2_layer_layer_2_1__1, 'Scale', DLTScales, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
end
% Shape:
[Vars.x_net_1_Shape_5_output_0, NumDims.x_net_1_Shape_5_output_0] = onnxShape(Vars.x_net_block5_block5_3_layer_layer_2_1__1, NumDims.x_net_block5_block5_3_layer_layer_2_1__1, 0, NumDims.x_net_block5_block5_3_layer_layer_2_1__1+1);
% Slice:
[Indices, NumDims.x_net_1_Slice_1_output_0] = prepareSliceArgs(Vars.x_net_1_Shape_5_output_0, Vars.onnx__Unsqueeze_154, Vars.x_net_Constant_4_output_0, Vars.onnx__Unsqueeze_154, '', NumDims.x_net_1_Shape_5_output_0);
Vars.x_net_1_Slice_1_output_0 = subsref(Vars.x_net_1_Shape_5_output_0, Indices);
% Concat:
[Vars.x_net_1_Concat_3_output_0, NumDims.x_net_1_Concat_3_output_0] = onnxConcat(0, {Vars.x_net_1_Slice_1_output_0, Vars.x_net_1_Unsqueeze_output_0, Vars.x_net_1_Unsqueeze_1_output_0}, [NumDims.x_net_1_Slice_1_output_0, NumDims.x_net_1_Unsqueeze_output_0, NumDims.x_net_1_Unsqueeze_1_output_0]);
% Resize:
[DLTScales, DLTSizes, dataFormat, Method, GeometricTransformMode, NearestRoundingMode, NumDims.x_net_1_Resize_1_output_0] = prepareResize11Args(dlarray([]), dlarray([]), Vars.x_net_1_Concat_3_output_0, "half_pixel", "linear", "floor", NumDims.x_net_block5_block5_3_layer_layer_2_1__1);
if isempty(DLTScales)
Vars.x_net_1_Resize_1_output_0 = dlresize(Vars.x_net_block5_block5_3_layer_layer_2_1__1, 'OutputSize', DLTSizes, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
else
Vars.x_net_1_Resize_1_output_0 = dlresize(Vars.x_net_block5_block5_3_layer_layer_2_1__1, 'Scale', DLTScales, 'DataFormat', dataFormat, 'Method', Method, 'GeometricTransformMode', GeometricTransformMode, 'NearestRoundingMode', NearestRoundingMode);
end
% Add:
Vars.x_net_1_Add_1_output_0 = Vars.x_net_block3_block3_2_layer_layer_2_1__1 + Vars.x_net_1_Resize_output_0;
NumDims.x_net_1_Add_1_output_0 = max(NumDims.x_net_block3_block3_2_layer_layer_2_1__1, NumDims.x_net_1_Resize_output_0);
% Add:
Vars.x_net_1_Add_2_output_0 = Vars.x_net_1_Add_1_output_0 + Vars.x_net_1_Resize_1_output_0;
NumDims.x_net_1_Add_2_output_0 = max(NumDims.x_net_1_Add_1_output_0, NumDims.x_net_1_Resize_1_output_0);
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block_fusion_block_fusion_0_lay_3] = prepareConvArgs(Vars.onnx__Conv_1574, Vars.onnx__Conv_1575, Vars.ConvStride1131, Vars.ConvDilationFactor1132, Vars.ConvPadding1133, 1, NumDims.x_net_1_Add_2_output_0, NumDims.onnx__Conv_1574);
Vars.x_net_block_fusion_block_fusion_0_lay_3 = dlconv(Vars.x_net_1_Add_2_output_0, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block_fusion_block_fusion_0_lay_11 = relu(Vars.x_net_block_fusion_block_fusion_0_lay_3);
NumDims.x_net_block_fusion_block_fusion_0_lay_11 = NumDims.x_net_block_fusion_block_fusion_0_lay_3;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block_fusion_block_fusion_1_lay_3] = prepareConvArgs(Vars.onnx__Conv_1577, Vars.onnx__Conv_1578, Vars.ConvStride1134, Vars.ConvDilationFactor1135, Vars.ConvPadding1136, 1, NumDims.x_net_block_fusion_block_fusion_0_lay_11, NumDims.onnx__Conv_1577);
Vars.x_net_block_fusion_block_fusion_1_lay_3 = dlconv(Vars.x_net_block_fusion_block_fusion_0_lay_11, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_block_fusion_block_fusion_1_lay_11 = relu(Vars.x_net_block_fusion_block_fusion_1_lay_3);
NumDims.x_net_block_fusion_block_fusion_1_lay_11 = NumDims.x_net_block_fusion_block_fusion_1_lay_3;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_block_fusion_block_fusion_2_1_Co_1] = prepareConvArgs(Vars.net_block_fusion_2_weight, Vars.net_block_fusion_2_bias, Vars.ConvStride1137, Vars.ConvDilationFactor1138, Vars.ConvPadding1139, 1, NumDims.x_net_block_fusion_block_fusion_1_lay_11, NumDims.net_block_fusion_2_weight);
Vars.x_net_block_fusion_block_fusion_2_1_Co_1 = dlconv(Vars.x_net_block_fusion_block_fusion_1_lay_11, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_heatmap_head_heatmap_head_0_lay_3] = prepareConvArgs(Vars.onnx__Conv_1580, Vars.onnx__Conv_1581, Vars.ConvStride1140, Vars.ConvDilationFactor1141, Vars.ConvPadding1142, 1, NumDims.x_net_block_fusion_block_fusion_2_1_Co_1, NumDims.onnx__Conv_1580);
Vars.x_net_heatmap_head_heatmap_head_0_lay_3 = dlconv(Vars.x_net_block_fusion_block_fusion_2_1_Co_1, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_heatmap_head_heatmap_head_0_lay_11 = relu(Vars.x_net_heatmap_head_heatmap_head_0_lay_3);
NumDims.x_net_heatmap_head_heatmap_head_0_lay_11 = NumDims.x_net_heatmap_head_heatmap_head_0_lay_3;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_heatmap_head_heatmap_head_1_lay_3] = prepareConvArgs(Vars.onnx__Conv_1583, Vars.onnx__Conv_1584, Vars.ConvStride1143, Vars.ConvDilationFactor1144, Vars.ConvPadding1145, 1, NumDims.x_net_heatmap_head_heatmap_head_0_lay_11, NumDims.onnx__Conv_1583);
Vars.x_net_heatmap_head_heatmap_head_1_lay_3 = dlconv(Vars.x_net_heatmap_head_heatmap_head_0_lay_11, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Relu:
Vars.x_net_heatmap_head_heatmap_head_1_lay_11 = relu(Vars.x_net_heatmap_head_heatmap_head_1_lay_3);
NumDims.x_net_heatmap_head_heatmap_head_1_lay_11 = NumDims.x_net_heatmap_head_heatmap_head_1_lay_3;
% Conv:
[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.x_net_heatmap_head_heatmap_head_2_1_Co_1] = prepareConvArgs(Vars.net_heatmap_head_2_weight, Vars.net_heatmap_head_2_bias, Vars.ConvStride1146, Vars.ConvDilationFactor1147, Vars.ConvPadding1148, 1, NumDims.x_net_heatmap_head_heatmap_head_1_lay_11, NumDims.net_heatmap_head_2_weight);
Vars.x_net_heatmap_head_heatmap_head_2_1_Co_1 = dlconv(Vars.x_net_heatmap_head_heatmap_head_1_lay_11, weights, bias, 'Stride', stride, 'DilationFactor', dilationFactor, 'Padding', padding, 'DataFormat', dataFormat);
% Sigmoid:
Vars.x_net_heatmap_head_heatmap_head_3_1_Si_1 = sigmoid(Vars.x_net_heatmap_head_heatmap_head_2_1_Co_1);
NumDims.x_net_heatmap_head_heatmap_head_3_1_Si_1 = NumDims.x_net_heatmap_head_heatmap_head_2_1_Co_1;
% Shape:
[Vars.x_Shape_13_output_0, NumDims.x_Shape_13_output_0] = onnxShape(Vars.x_net_block_fusion_block_fusion_2_1_Co_1, NumDims.x_net_block_fusion_block_fusion_2_1_Co_1, 0, NumDims.x_net_block_fusion_block_fusion_2_1_Co_1+1);
% Gather:
[Vars.x_Gather_8_output_0, NumDims.x_Gather_8_output_0] = onnxGather(Vars.x_Shape_13_output_0, Vars.x_Constant_11_output_0, 0, NumDims.x_Shape_13_output_0, NumDims.x_Constant_11_output_0);
% Gather:
[Vars.x_Gather_10_output_0, NumDims.x_Gather_10_output_0] = onnxGather(Vars.x_Shape_13_output_0, Vars.x_Constant_2_output_0, 0, NumDims.x_Shape_13_output_0, NumDims.x_Constant_2_output_0);
% Gather:
[Vars.x_Gather_11_output_0, NumDims.x_Gather_11_output_0] = onnxGather(Vars.x_Shape_13_output_0, Vars.x_Constant_3_output_0, 0, NumDims.x_Shape_13_output_0, NumDims.x_Constant_3_output_0);
% Range:
Vars.x_Range_2_output_0 = dlarray(Vars.x_Constant_11_output_0:Vars.x_Constant_17_output_0:Vars.x_Gather_10_output_0-sign(Vars.x_Constant_17_output_0))';
NumDims.x_Range_2_output_0 = 1;
% Range:
Vars.x_Range_3_output_0 = dlarray(Vars.x_Constant_11_output_0:Vars.x_Constant_17_output_0:Vars.x_Gather_11_output_0-sign(Vars.x_Constant_17_output_0))';
NumDims.x_Range_3_output_0 = 1;
% Shape:
[Vars.x_Shape_17_output_0, NumDims.x_Shape_17_output_0] = onnxShape(Vars.x_Range_2_output_0, NumDims.x_Range_2_output_0, 0, NumDims.x_Range_2_output_0+1);
% Shape:
[Vars.x_Shape_18_output_0, NumDims.x_Shape_18_output_0] = onnxShape(Vars.x_Range_3_output_0, NumDims.x_Range_3_output_0, 0, NumDims.x_Range_3_output_0+1);
% Concat:
[Vars.x_Concat_11_output_0, NumDims.x_Concat_11_output_0] = onnxConcat(0, {Vars.x_Shape_17_output_0, Vars.x_Shape_18_output_0}, [NumDims.x_Shape_17_output_0, NumDims.x_Shape_18_output_0]);
% Reshape:
[shape, NumDims.x_Reshape_10_output_0] = prepareReshapeArgs(Vars.x_Range_2_output_0, Vars.x_v_1932, NumDims.x_Range_2_output_0, 0);
Vars.x_Reshape_10_output_0 = reshape(Vars.x_Range_2_output_0, shape{:});
% Expand:
[shape, NumDims.x_Expand_5_output_0] = prepareExpandArgs(Vars.x_Concat_11_output_0);
Vars.x_Expand_5_output_0 = Vars.x_Reshape_10_output_0 + zeros(shape);
% Reshape:
[shape, NumDims.x_Reshape_11_output_0] = prepareReshapeArgs(Vars.x_Range_3_output_0, Vars.x_v_1934, NumDims.x_Range_3_output_0, 0);
Vars.x_Reshape_11_output_0 = reshape(Vars.x_Range_3_output_0, shape{:});
% Expand:
[shape, NumDims.x_Expand_6_output_0] = prepareExpandArgs(Vars.x_Concat_11_output_0);
Vars.x_Expand_6_output_0 = Vars.x_Reshape_11_output_0 + zeros(shape);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_11_output_0] = prepareUnsqueezeArgs(Vars.x_Expand_6_output_0, Vars.x_net_Constant_4_output_0, NumDims.x_Expand_6_output_0);
Vars.x_Unsqueeze_11_output_0 = reshape(Vars.x_Expand_6_output_0, shape);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_12_output_0] = prepareUnsqueezeArgs(Vars.x_Expand_5_output_0, Vars.x_net_Constant_4_output_0, NumDims.x_Expand_5_output_0);
Vars.x_Unsqueeze_12_output_0 = reshape(Vars.x_Expand_5_output_0, shape);
% Concat:
[Vars.x_Concat_14_output_0, NumDims.x_Concat_14_output_0] = onnxConcat(-1, {Vars.x_Unsqueeze_11_output_0, Vars.x_Unsqueeze_12_output_0}, [NumDims.x_Unsqueeze_11_output_0, NumDims.x_Unsqueeze_12_output_0]);
% Reshape:
[shape, NumDims.x_Reshape_12_output_0] = prepareReshapeArgs(Vars.x_Concat_14_output_0, Vars.x_Constant_26_output_0, NumDims.x_Concat_14_output_0, 0);
Vars.x_Reshape_12_output_0 = reshape(Vars.x_Concat_14_output_0, shape{:});
% Mul:
Vars.x_Mul_9_output_0 = Vars.x_Reshape_12_output_0 .* Vars.x_Constant_27_output_0;
NumDims.x_Mul_9_output_0 = max(NumDims.x_Reshape_12_output_0, NumDims.x_Constant_27_output_0);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_13_output_0] = prepareUnsqueezeArgs(Vars.x_Gather_8_output_0, Vars.onnx__Unsqueeze_154, NumDims.x_Gather_8_output_0);
Vars.x_Unsqueeze_13_output_0 = reshape(Vars.x_Gather_8_output_0, shape);
% Concat:
[Vars.x_Concat_15_output_0, NumDims.x_Concat_15_output_0] = onnxConcat(0, {Vars.x_Unsqueeze_13_output_0, Vars.x_Constant_29_output_0, Vars.x_Constant_29_output_0}, [NumDims.x_Unsqueeze_13_output_0, NumDims.x_Constant_29_output_0, NumDims.x_Constant_29_output_0]);
% Equal:
Vars.x_Equal_3_output_0 = Vars.x_Concat_15_output_0 == Vars.x_Mul_3_output_0;
NumDims.x_Equal_3_output_0 = max(NumDims.x_Concat_15_output_0, NumDims.x_Mul_3_output_0);
% Where:
[Vars.x_Where_3_output_0, NumDims.x_Where_3_output_0] = onnxWhere(Vars.x_Equal_3_output_0, Vars.x_ConstantOfShape_output_0, Vars.x_Concat_15_output_0, NumDims.x_Equal_3_output_0, NumDims.x_ConstantOfShape_output_0, NumDims.x_Concat_15_output_0);
% Expand:
[shape, NumDims.x_Expand_7_output_0] = prepareExpandArgs(Vars.x_Where_3_output_0);
Vars.x_Expand_7_output_0 = Vars.x_Mul_9_output_0 + zeros(shape);
% Transpose:
[perm, NumDims.x_Transpose_2_output_0] = prepareTransposeArgs(Vars.TransposePerm1149, NumDims.x_net_block_fusion_block_fusion_2_1_Co_1);
if ~isempty(perm)
Vars.x_Transpose_2_output_0 = permute(Vars.x_net_block_fusion_block_fusion_2_1_Co_1, perm);
end
% Concat:
[Vars.x_Concat_16_output_0, NumDims.x_Concat_16_output_0] = onnxConcat(0, {Vars.x_Unsqueeze_13_output_0, Vars.x_Constant_29_output_0, Vars.x_Unsqueeze_6_output_0}, [NumDims.x_Unsqueeze_13_output_0, NumDims.x_Constant_29_output_0, NumDims.x_Unsqueeze_6_output_0]);
% Reshape:
[shape, NumDims.x_Reshape_14_output_0] = prepareReshapeArgs(Vars.x_Transpose_2_output_0, Vars.x_Concat_16_output_0, NumDims.x_Transpose_2_output_0, 0);
Vars.x_Reshape_14_output_0 = reshape(Vars.x_Transpose_2_output_0, shape{:});
% Transpose:
[perm, NumDims.x_Transpose_3_output_0] = prepareTransposeArgs(Vars.TransposePerm1150, NumDims.x_net_heatmap_head_heatmap_head_3_1_Si_1);
if ~isempty(perm)
Vars.x_Transpose_3_output_0 = permute(Vars.x_net_heatmap_head_heatmap_head_3_1_Si_1, perm);
end
% Concat:
[Vars.x_Concat_17_output_0, NumDims.x_Concat_17_output_0] = onnxConcat(0, {Vars.x_Unsqueeze_13_output_0, Vars.x_Constant_29_output_0}, [NumDims.x_Unsqueeze_13_output_0, NumDims.x_Constant_29_output_0]);
% Reshape:
[shape, NumDims.x_Reshape_15_output_0] = prepareReshapeArgs(Vars.x_Transpose_3_output_0, Vars.x_Concat_17_output_0, NumDims.x_Transpose_3_output_0, 0);
Vars.x_Reshape_15_output_0 = reshape(Vars.x_Transpose_3_output_0, shape{:});
% TopK:
[Vars.x_TopK_1_output_0, Vars.x_TopK_1_output_1, NumDims.x_TopK_1_output_0, NumDims.x_TopK_1_output_1] = onnxTopK11(Vars.x_Reshape_15_output_0, Vars.x_Constant_78_output_0, -1, 1, 1, NumDims.x_Reshape_15_output_0);
% Unsqueeze:
[shape, NumDims.x_Unsqueeze_17_output_0] = prepareUnsqueezeArgs(Vars.x_TopK_1_output_1, Vars.x_net_Constant_4_output_0, NumDims.x_TopK_1_output_1);
Vars.x_Unsqueeze_17_output_0 = reshape(Vars.x_TopK_1_output_1, shape);
% Expand:
[shape, NumDims.x_Expand_8_output_0] = prepareExpandArgs(Vars.x_Where_1_output_0);
Vars.x_Expand_8_output_0 = Vars.x_Unsqueeze_17_output_0 + zeros(shape);
% GatherElements:
[Vars.x_GatherElements_2_output_0, NumDims.x_GatherElements_2_output_0] = onnxGatherElements(Vars.x_Reshape_14_output_0, Vars.x_Expand_8_output_0, 1, NumDims.x_Reshape_14_output_0, NumDims.x_Expand_8_output_0);
% Expand:
[shape, NumDims.x_Expand_9_output_0] = prepareExpandArgs(Vars.x_Where_2_output_0);
Vars.x_Expand_9_output_0 = Vars.x_Unsqueeze_17_output_0 + zeros(shape);
% GatherElements:
[Vars.x_GatherElements_3_output_0, NumDims.x_GatherElements_3_output_0] = onnxGatherElements(Vars.x_Expand_7_output_0, Vars.x_Expand_9_output_0, 1, NumDims.x_Expand_7_output_0, NumDims.x_Expand_9_output_0);
% Cast:
if islogical(Vars.x_GatherElements_3_output_0)
Vars.x_GatherElements_3_output_0 = single(Vars.x_GatherElements_3_output_0);
end
Vars.x_Cast_17_output_0 = single(Vars.x_GatherElements_3_output_0);
NumDims.x_Cast_17_output_0 = NumDims.x_GatherElements_3_output_0;
% Div:
Vars.x_Div_4_output_0 = Vars.x_Cast_8_output_0 ./ Vars.x_Constant_89_output_0;