"vscode:/vscode.git/clone" did not exist on "f6efda9e2ff9782bad2aa0294ebef19c244035bc"
Unverified Commit dca963c0 authored by Paul Fultz II's avatar Paul Fultz II Committed by GitHub
Browse files

Merge branch 'develop' into fastsoftmax

parents c5703af4 fa3c21fa
...@@ -53,6 +53,7 @@ jobs: ...@@ -53,6 +53,7 @@ jobs:
CXX=/opt/rocm/llvm/bin/clang++ CC=/opt/rocm/llvm/bin/clang cmake \ CXX=/opt/rocm/llvm/bin/clang++ CC=/opt/rocm/llvm/bin/clang cmake \
-DMIGRAPHX_ENABLE_GPU=On \ -DMIGRAPHX_ENABLE_GPU=On \
-DMIGRAPHX_ENABLE_CPU=On \ -DMIGRAPHX_ENABLE_CPU=On \
-DMIGRAPHX_ENABLE_FPGA=On \
-DROCM_ENABLE_GH_ANNOTATIONS=On \ -DROCM_ENABLE_GH_ANNOTATIONS=On \
-DCLANG_TIDY_DEPEND_ON_TARGET=Off \ -DCLANG_TIDY_DEPEND_ON_TARGET=Off \
-DCLANG_TIDY_CACHE=/data/tidy-cache \ -DCLANG_TIDY_CACHE=/data/tidy-cache \
......
...@@ -90,7 +90,6 @@ add_library(migraphx ...@@ -90,7 +90,6 @@ add_library(migraphx
shape.cpp shape.cpp
simplify_algebra.cpp simplify_algebra.cpp
simplify_reshapes.cpp simplify_reshapes.cpp
target_assignments.cpp
tmp_dir.cpp tmp_dir.cpp
value.cpp value.cpp
verify_args.cpp verify_args.cpp
......
...@@ -25,13 +25,10 @@ ...@@ -25,13 +25,10 @@
#include <migraphx/make_op.hpp> #include <migraphx/make_op.hpp>
#include <migraphx/program.hpp> #include <migraphx/program.hpp>
#include <migraphx/generate.hpp> #include <migraphx/generate.hpp>
#include <migraphx/json.hpp>
#include "models.hpp" #include "models.hpp"
namespace migraphx { namespace migraphx {
namespace driver { namespace driver {
inline namespace MIGRAPHX_INLINE_NS { inline namespace MIGRAPHX_INLINE_NS {
migraphx::program alexnet(unsigned batch) // NOLINT(readability-function-size) migraphx::program alexnet(unsigned batch) // NOLINT(readability-function-size)
{ {
migraphx::program p; migraphx::program p;
...@@ -42,179 +39,153 @@ migraphx::program alexnet(unsigned batch) // NOLINT(readability-function-size) ...@@ -42,179 +39,153 @@ migraphx::program alexnet(unsigned batch) // NOLINT(readability-function-size)
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1}}, 1))); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1}}, 1)));
auto x_main_module_2 = mmain->add_literal(migraphx::abs( auto x_main_module_2 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1}}, 2))); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1}}, 2)));
auto x_input_1 = mmain->add_parameter( auto x_0 = mmain->add_parameter(
"input.1", migraphx::shape{migraphx::shape::float_type, {batch, 3, 224, 224}}); "0", migraphx::shape{migraphx::shape::float_type, {batch, 3, 224, 224}});
auto x_main_module_4 = mmain->add_literal( auto x_main_module_4 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {4096, 4096}}, 3)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1000}}, 3));
auto x_main_module_5 = mmain->add_literal( auto x_main_module_5 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {4096}}, 4)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1000, 4096}}, 4));
auto x_main_module_6 = mmain->add_literal( auto x_main_module_6 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {4096, 9216}}, 5)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {4096}}, 5));
auto x_main_module_7 = mmain->add_literal( auto x_main_module_7 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {4096}}, 6)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {4096, 4096}}, 6));
auto x_main_module_8 = mmain->add_literal( auto x_main_module_8 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1000, 4096}}, 7)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {4096}}, 7));
auto x_main_module_9 = mmain->add_literal( auto x_main_module_9 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1000}}, 8)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {4096, 9216}}, 8));
auto x_main_module_10 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_10 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {256, 384, 3, 3}}, 9)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 9));
auto x_main_module_11 = mmain->add_literal( auto x_main_module_11 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 10)); migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 10));
auto x_main_module_12 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_12 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {384, 192, 3, 3}}, 11)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 11));
auto x_main_module_13 = mmain->add_literal( auto x_main_module_13 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {384}}, 12)); migraphx::shape{migraphx::shape::float_type, {256, 384, 3, 3}}, 12));
auto x_main_module_14 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_14 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {192, 64, 5, 5}}, 13)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {384}}, 13));
auto x_main_module_15 = mmain->add_literal( auto x_main_module_15 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {192}}, 14)); migraphx::shape{migraphx::shape::float_type, {384, 192, 3, 3}}, 14));
auto x_main_module_16 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_16 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 15)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {192}}, 15));
auto x_main_module_17 = mmain->add_literal( auto x_main_module_17 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 16)); migraphx::shape{migraphx::shape::float_type, {192, 64, 5, 5}}, 16));
auto x_main_module_18 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_18 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {64, 3, 11, 11}}, 17)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 17));
auto x_main_module_19 = mmain->add_literal( auto x_main_module_19 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 18)); migraphx::shape{migraphx::shape::float_type, {64, 3, 11, 11}}, 18));
auto x_main_module_20 = mmain->add_instruction( auto x_main_module_20 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op("convolution",
"convolution", "{dilation:[1,1],group:1,padding:[2,2,2,2],padding_mode:0,stride:[4,"
migraphx::from_json_string( "4],use_dynamic_same_auto_pad:0}"),
"{dilation:[1,1],group:1,padding:[2,2,2,2],padding_mode:0,stride:[4,4]}")), x_0,
x_input_1,
x_main_module_18);
auto x_main_module_21 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,64,55,55]}")),
x_main_module_19); x_main_module_19);
auto x_main_module_21 = mmain->add_instruction(
migraphx::make_json_op("broadcast", "{axis:1,out_lens:[1,64,55,55]}"), x_main_module_18);
auto x_main_module_22 = auto x_main_module_22 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_20, x_main_module_21); mmain->add_instruction(migraphx::make_op("add"), x_main_module_20, x_main_module_21);
auto x_main_module_23 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_22); auto x_main_module_23 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_22);
auto x_main_module_24 = mmain->add_instruction( auto x_main_module_24 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op(
"pooling", "pooling",
migraphx::from_json_string( "{ceil_mode:0,lengths:[3,3],lp_order:2,mode:1,padding:[0,0,0,0],stride:[2,2]}"),
"{ceil_mode:0,lengths:[3,3],lp_order:2,mode:1,padding:[0,0,0,0],stride:[2,2]}")),
x_main_module_23); x_main_module_23);
auto x_main_module_25 = mmain->add_instruction( auto x_main_module_25 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op("convolution",
"convolution", "{dilation:[1,1],group:1,padding:[2,2,2,2],padding_mode:0,stride:[1,"
migraphx::from_json_string( "1],use_dynamic_same_auto_pad:0}"),
"{dilation:[1,1],group:1,padding:[2,2,2,2],padding_mode:0,stride:[1,1]}")),
x_main_module_24, x_main_module_24,
x_main_module_14); x_main_module_17);
auto x_main_module_26 = mmain->add_instruction( auto x_main_module_26 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op("broadcast", "{axis:1,out_lens:[1,192,27,27]}"), x_main_module_16);
migraphx::from_json_string("{axis:1,out_lens:[1,192,27,27]}")),
x_main_module_15);
auto x_main_module_27 = auto x_main_module_27 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_25, x_main_module_26); mmain->add_instruction(migraphx::make_op("add"), x_main_module_25, x_main_module_26);
auto x_main_module_28 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_27); auto x_main_module_28 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_27);
auto x_main_module_29 = mmain->add_instruction( auto x_main_module_29 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op(
"pooling", "pooling",
migraphx::from_json_string( "{ceil_mode:0,lengths:[3,3],lp_order:2,mode:1,padding:[0,0,0,0],stride:[2,2]}"),
"{ceil_mode:0,lengths:[3,3],lp_order:2,mode:1,padding:[0,0,0,0],stride:[2,2]}")),
x_main_module_28); x_main_module_28);
auto x_main_module_30 = mmain->add_instruction( auto x_main_module_30 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op("convolution",
"convolution", "{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
migraphx::from_json_string( "1],use_dynamic_same_auto_pad:0}"),
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_29, x_main_module_29,
x_main_module_12); x_main_module_15);
auto x_main_module_31 = mmain->add_instruction( auto x_main_module_31 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op("broadcast", "{axis:1,out_lens:[1,384,13,13]}"), x_main_module_14);
migraphx::from_json_string("{axis:1,out_lens:[1,384,13,13]}")),
x_main_module_13);
auto x_main_module_32 = auto x_main_module_32 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_30, x_main_module_31); mmain->add_instruction(migraphx::make_op("add"), x_main_module_30, x_main_module_31);
auto x_main_module_33 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_32); auto x_main_module_33 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_32);
auto x_main_module_34 = mmain->add_instruction( auto x_main_module_34 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op("convolution",
"convolution", "{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
migraphx::from_json_string( "1],use_dynamic_same_auto_pad:0}"),
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_33, x_main_module_33,
x_main_module_10); x_main_module_13);
auto x_main_module_35 = mmain->add_instruction( auto x_main_module_35 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op("broadcast", "{axis:1,out_lens:[1,256,13,13]}"), x_main_module_12);
migraphx::from_json_string("{axis:1,out_lens:[1,256,13,13]}")),
x_main_module_11);
auto x_main_module_36 = auto x_main_module_36 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_34, x_main_module_35); mmain->add_instruction(migraphx::make_op("add"), x_main_module_34, x_main_module_35);
auto x_main_module_37 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_36); auto x_main_module_37 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_36);
auto x_main_module_38 = mmain->add_instruction( auto x_main_module_38 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op("convolution",
"convolution", "{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
migraphx::from_json_string( "1],use_dynamic_same_auto_pad:0}"),
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_37, x_main_module_37,
x_main_module_16); x_main_module_11);
auto x_main_module_39 = mmain->add_instruction( auto x_main_module_39 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op("broadcast", "{axis:1,out_lens:[1,256,13,13]}"), x_main_module_10);
migraphx::from_json_string("{axis:1,out_lens:[1,256,13,13]}")),
x_main_module_17);
auto x_main_module_40 = auto x_main_module_40 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_38, x_main_module_39); mmain->add_instruction(migraphx::make_op("add"), x_main_module_38, x_main_module_39);
auto x_main_module_41 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_40); auto x_main_module_41 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_40);
auto x_main_module_42 = mmain->add_instruction( auto x_main_module_42 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op(
"pooling", "pooling",
migraphx::from_json_string( "{ceil_mode:0,lengths:[3,3],lp_order:2,mode:1,padding:[0,0,0,0],stride:[2,2]}"),
"{ceil_mode:0,lengths:[3,3],lp_order:2,mode:1,padding:[0,0,0,0],stride:[2,2]}")),
x_main_module_41); x_main_module_41);
auto x_main_module_43 = mmain->add_instruction( auto x_main_module_43 =
migraphx::make_op("reshape", migraphx::from_json_string("{dims:[1,9216]}")), mmain->add_instruction(migraphx::make_json_op("flatten", "{axis:1}"), x_main_module_42);
x_main_module_42); auto x_main_module_44 = mmain->add_instruction(migraphx::make_op("identity"), x_main_module_43);
auto x_main_module_44 = mmain->add_instruction( auto x_main_module_45 = mmain->add_instruction(
migraphx::make_op("transpose", migraphx::from_json_string("{permutation:[1,0]}")), migraphx::make_json_op("transpose", "{permutation:[1,0]}"), x_main_module_9);
x_main_module_6); auto x_main_module_46 =
auto x_main_module_45 = mmain->add_instruction(migraphx::make_op("dot"), x_main_module_44, x_main_module_45);
mmain->add_instruction(migraphx::make_op("dot"), x_main_module_43, x_main_module_44);
auto x_main_module_46 = mmain->add_instruction(
migraphx::make_op("multibroadcast", migraphx::from_json_string("{out_lens:[1,4096]}")),
x_main_module_7);
auto x_main_module_47 = mmain->add_instruction( auto x_main_module_47 = mmain->add_instruction(
migraphx::make_op("multibroadcast", migraphx::from_json_string("{out_lens:[1,4096]}")), migraphx::make_json_op("multibroadcast", "{out_lens:[1,4096]}"), x_main_module_8);
x_main_module_2); auto x_main_module_48 = mmain->add_instruction(
auto x_main_module_48 = migraphx::make_json_op("multibroadcast", "{out_lens:[1,4096]}"), x_main_module_2);
mmain->add_instruction(migraphx::make_op("mul"), x_main_module_46, x_main_module_47);
auto x_main_module_49 = auto x_main_module_49 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_45, x_main_module_48); mmain->add_instruction(migraphx::make_op("mul"), x_main_module_47, x_main_module_48);
auto x_main_module_50 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_49); auto x_main_module_50 =
auto x_main_module_51 = mmain->add_instruction( mmain->add_instruction(migraphx::make_op("add"), x_main_module_46, x_main_module_49);
migraphx::make_op("transpose", migraphx::from_json_string("{permutation:[1,0]}")), auto x_main_module_51 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_50);
x_main_module_4); auto x_main_module_52 = mmain->add_instruction(migraphx::make_op("identity"), x_main_module_51);
auto x_main_module_52 =
mmain->add_instruction(migraphx::make_op("dot"), x_main_module_50, x_main_module_51);
auto x_main_module_53 = mmain->add_instruction( auto x_main_module_53 = mmain->add_instruction(
migraphx::make_op("multibroadcast", migraphx::from_json_string("{out_lens:[1,4096]}")), migraphx::make_json_op("transpose", "{permutation:[1,0]}"), x_main_module_7);
x_main_module_5); auto x_main_module_54 =
auto x_main_module_54 = mmain->add_instruction( mmain->add_instruction(migraphx::make_op("dot"), x_main_module_52, x_main_module_53);
migraphx::make_op("multibroadcast", migraphx::from_json_string("{out_lens:[1,4096]}")), auto x_main_module_55 = mmain->add_instruction(
x_main_module_1); migraphx::make_json_op("multibroadcast", "{out_lens:[1,4096]}"), x_main_module_6);
auto x_main_module_55 = auto x_main_module_56 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("mul"), x_main_module_53, x_main_module_54); migraphx::make_json_op("multibroadcast", "{out_lens:[1,4096]}"), x_main_module_1);
auto x_main_module_56 = auto x_main_module_57 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_52, x_main_module_55); mmain->add_instruction(migraphx::make_op("mul"), x_main_module_55, x_main_module_56);
auto x_main_module_57 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_56); auto x_main_module_58 =
auto x_main_module_58 = mmain->add_instruction( mmain->add_instruction(migraphx::make_op("add"), x_main_module_54, x_main_module_57);
migraphx::make_op("transpose", migraphx::from_json_string("{permutation:[1,0]}")), auto x_main_module_59 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_58);
x_main_module_8);
auto x_main_module_59 =
mmain->add_instruction(migraphx::make_op("dot"), x_main_module_57, x_main_module_58);
auto x_main_module_60 = mmain->add_instruction( auto x_main_module_60 = mmain->add_instruction(
migraphx::make_op("multibroadcast", migraphx::from_json_string("{out_lens:[1,1000]}")), migraphx::make_json_op("transpose", "{permutation:[1,0]}"), x_main_module_5);
x_main_module_9); auto x_main_module_61 =
auto x_main_module_61 = mmain->add_instruction( mmain->add_instruction(migraphx::make_op("dot"), x_main_module_59, x_main_module_60);
migraphx::make_op("multibroadcast", migraphx::from_json_string("{out_lens:[1,1000]}")), auto x_main_module_62 = mmain->add_instruction(
x_main_module_0); migraphx::make_json_op("multibroadcast", "{out_lens:[1,1000]}"), x_main_module_4);
auto x_main_module_62 = auto x_main_module_63 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("mul"), x_main_module_60, x_main_module_61); migraphx::make_json_op("multibroadcast", "{out_lens:[1,1000]}"), x_main_module_0);
auto x_main_module_63 = auto x_main_module_64 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_59, x_main_module_62); mmain->add_instruction(migraphx::make_op("mul"), x_main_module_62, x_main_module_63);
mmain->add_return({x_main_module_63}); auto x_main_module_65 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_61, x_main_module_64);
mmain->add_return({x_main_module_65});
return p; return p;
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -25,1033 +25,1453 @@ ...@@ -25,1033 +25,1453 @@
#include <migraphx/make_op.hpp> #include <migraphx/make_op.hpp>
#include <migraphx/program.hpp> #include <migraphx/program.hpp>
#include <migraphx/generate.hpp> #include <migraphx/generate.hpp>
#include <migraphx/json.hpp>
#include "models.hpp" #include "models.hpp"
namespace migraphx { namespace migraphx {
namespace driver { namespace driver {
inline namespace MIGRAPHX_INLINE_NS { inline namespace MIGRAPHX_INLINE_NS {
migraphx::program resnet50(unsigned batch) // NOLINT(readability-function-size) migraphx::program resnet50(unsigned batch) // NOLINT(readability-function-size)
{ {
migraphx::program p; migraphx::program p;
migraphx::module_ref mmain = p.get_main_module(); migraphx::module_ref mmain = p.get_main_module();
auto x_main_module_0 = mmain->add_literal(migraphx::abs( auto x_main_module_0 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1}}, 0))); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1}}, 0)));
auto x_input_1 = mmain->add_parameter( auto x_0 = mmain->add_parameter(
"input.1", migraphx::shape{migraphx::shape::float_type, {batch, 3, 224, 224}}); "0", migraphx::shape{migraphx::shape::float_type, {batch, 3, 224, 224}});
auto x_main_module_2 = mmain->add_literal( auto x_main_module_2 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1000, 2048}}, 1)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1000}}, 1));
auto x_main_module_3 = mmain->add_literal( auto x_main_module_3 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1000}}, 2)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1000, 2048}}, 2));
auto x_main_module_4 = mmain->add_literal( auto x_main_module_4 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 3)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 3)));
auto x_main_module_5 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_5 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {2048, 512, 1, 1}}, 4)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 4));
auto x_main_module_6 = mmain->add_literal( auto x_main_module_6 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 5)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 5));
auto x_main_module_7 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_7 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {512, 512, 3, 3}}, 6)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 6)));
auto x_main_module_8 = mmain->add_literal( auto x_main_module_8 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 7)); migraphx::shape{migraphx::shape::float_type, {2048, 512, 1, 1}}, 7));
auto x_main_module_9 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_9 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {512, 2048, 1, 1}}, 8)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 8)));
auto x_main_module_10 = mmain->add_literal( auto x_main_module_10 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 9)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 9));
auto x_main_module_11 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_11 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {2048, 512, 1, 1}}, 10)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 10));
auto x_main_module_12 = mmain->add_literal( auto x_main_module_12 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 11)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 11)));
auto x_main_module_13 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_13 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {512, 512, 3, 3}}, 12)); migraphx::shape{migraphx::shape::float_type, {512, 512, 3, 3}}, 12));
auto x_main_module_14 = mmain->add_literal( auto x_main_module_14 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 13)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 13)));
auto x_main_module_15 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_15 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {512, 2048, 1, 1}}, 14)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 14));
auto x_main_module_16 = mmain->add_literal( auto x_main_module_16 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 15)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 15));
auto x_main_module_17 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_17 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {2048, 1024, 1, 1}}, 16)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 16)));
auto x_main_module_18 = mmain->add_literal( auto x_main_module_18 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 17)); migraphx::shape{migraphx::shape::float_type, {512, 2048, 1, 1}}, 17));
auto x_main_module_19 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_19 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {2048, 512, 1, 1}}, 18)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 18)));
auto x_main_module_20 = mmain->add_literal( auto x_main_module_20 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 19)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 19));
auto x_main_module_21 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_21 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {512, 512, 3, 3}}, 20)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 20));
auto x_main_module_22 = mmain->add_literal( auto x_main_module_22 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 21)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 21)));
auto x_main_module_23 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_23 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {512, 1024, 1, 1}}, 22)); migraphx::shape{migraphx::shape::float_type, {2048, 512, 1, 1}}, 22));
auto x_main_module_24 = mmain->add_literal( auto x_main_module_24 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 23)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 23)));
auto x_main_module_25 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_25 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 24)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 24));
auto x_main_module_26 = mmain->add_literal( auto x_main_module_26 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 25)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 25));
auto x_main_module_27 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_27 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 26)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 26)));
auto x_main_module_28 = mmain->add_literal( auto x_main_module_28 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 27)); migraphx::shape{migraphx::shape::float_type, {512, 512, 3, 3}}, 27));
auto x_main_module_29 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_29 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 28)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 28)));
auto x_main_module_30 = mmain->add_literal( auto x_main_module_30 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 29)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 29));
auto x_main_module_31 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_31 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 30)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 30));
auto x_main_module_32 = mmain->add_literal( auto x_main_module_32 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 31)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 31)));
auto x_main_module_33 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_33 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 32)); migraphx::shape{migraphx::shape::float_type, {512, 2048, 1, 1}}, 32));
auto x_main_module_34 = mmain->add_literal( auto x_main_module_34 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 33)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 33)));
auto x_main_module_35 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_35 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 34)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 34));
auto x_main_module_36 = mmain->add_literal( auto x_main_module_36 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 35)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 35));
auto x_main_module_37 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_37 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 36)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 36)));
auto x_main_module_38 = mmain->add_literal( auto x_main_module_38 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 37)); migraphx::shape{migraphx::shape::float_type, {2048, 1024, 1, 1}}, 37));
auto x_main_module_39 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_39 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 38)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 38)));
auto x_main_module_40 = mmain->add_literal( auto x_main_module_40 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 39)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 39));
auto x_main_module_41 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_41 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 40)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 40));
auto x_main_module_42 = mmain->add_literal( auto x_main_module_42 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 41)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {2048}}, 41)));
auto x_main_module_43 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_43 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 42)); migraphx::shape{migraphx::shape::float_type, {2048, 512, 1, 1}}, 42));
auto x_main_module_44 = mmain->add_literal( auto x_main_module_44 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 43)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 43)));
auto x_main_module_45 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_45 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 44)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 44));
auto x_main_module_46 = mmain->add_literal( auto x_main_module_46 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 45)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 45));
auto x_main_module_47 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_47 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 46)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 46)));
auto x_main_module_48 = mmain->add_literal( auto x_main_module_48 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 47)); migraphx::shape{migraphx::shape::float_type, {512, 512, 3, 3}}, 47));
auto x_main_module_49 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_49 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 48)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 48)));
auto x_main_module_50 = mmain->add_literal( auto x_main_module_50 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 49)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 49));
auto x_main_module_51 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_51 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 50)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 50));
auto x_main_module_52 = mmain->add_literal( auto x_main_module_52 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 51)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 51)));
auto x_main_module_53 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_53 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 52)); migraphx::shape{migraphx::shape::float_type, {512, 1024, 1, 1}}, 52));
auto x_main_module_54 = mmain->add_literal( auto x_main_module_54 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 53)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 53)));
auto x_main_module_55 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_55 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {1024, 512, 1, 1}}, 54)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 54));
auto x_main_module_56 = mmain->add_literal( auto x_main_module_56 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 55)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 55));
auto x_main_module_57 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_57 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 56)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 56));
auto x_main_module_58 = mmain->add_literal( auto x_main_module_58 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 57)); migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 57));
auto x_main_module_59 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_59 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 58)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 58)));
auto x_main_module_60 = mmain->add_literal( auto x_main_module_60 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 59)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 59));
auto x_main_module_61 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_61 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {256, 512, 1, 1}}, 60)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 60));
auto x_main_module_62 = mmain->add_literal( auto x_main_module_62 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 61)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 61)));
auto x_main_module_63 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_63 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {512, 128, 1, 1}}, 62)); migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 62));
auto x_main_module_64 = mmain->add_literal( auto x_main_module_64 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 63)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 63)));
auto x_main_module_65 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_65 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {128, 128, 3, 3}}, 64)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 64));
auto x_main_module_66 = mmain->add_literal( auto x_main_module_66 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 65)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 65));
auto x_main_module_67 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_67 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {128, 512, 1, 1}}, 66)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 66)));
auto x_main_module_68 = mmain->add_literal( auto x_main_module_68 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 67)); migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 67));
auto x_main_module_69 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_69 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {512, 128, 1, 1}}, 68)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 68)));
auto x_main_module_70 = mmain->add_literal( auto x_main_module_70 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 69)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 69));
auto x_main_module_71 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_71 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {128, 128, 3, 3}}, 70)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 70));
auto x_main_module_72 = mmain->add_literal( auto x_main_module_72 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 71)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 71));
auto x_main_module_73 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_73 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {128, 512, 1, 1}}, 72)); migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 72));
auto x_main_module_74 = mmain->add_literal( auto x_main_module_74 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 73)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 73)));
auto x_main_module_75 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_75 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {512, 128, 1, 1}}, 74)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 74));
auto x_main_module_76 = mmain->add_literal( auto x_main_module_76 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 75)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 75));
auto x_main_module_77 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_77 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {128, 128, 3, 3}}, 76)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 76)));
auto x_main_module_78 = mmain->add_literal( auto x_main_module_78 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 77)); migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 77));
auto x_main_module_79 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_79 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {128, 512, 1, 1}}, 78)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 78)));
auto x_main_module_80 = mmain->add_literal( auto x_main_module_80 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 79)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 79));
auto x_main_module_81 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_81 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {512, 256, 1, 1}}, 80)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 80));
auto x_main_module_82 = mmain->add_literal( auto x_main_module_82 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 81)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 81)));
auto x_main_module_83 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_83 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {512, 128, 1, 1}}, 82)); migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 82));
auto x_main_module_84 = mmain->add_literal( auto x_main_module_84 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 83)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 83)));
auto x_main_module_85 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_85 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {128, 128, 3, 3}}, 84)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 84));
auto x_main_module_86 = mmain->add_literal( auto x_main_module_86 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 85)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 85));
auto x_main_module_87 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_87 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {128, 256, 1, 1}}, 86)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 86));
auto x_main_module_88 = mmain->add_literal( auto x_main_module_88 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 87)); migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 87));
auto x_main_module_89 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_89 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {256, 64, 1, 1}}, 88)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 88)));
auto x_main_module_90 = mmain->add_literal( auto x_main_module_90 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 89)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 89));
auto x_main_module_91 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_91 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {64, 64, 3, 3}}, 90)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 90));
auto x_main_module_92 = mmain->add_literal( auto x_main_module_92 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 91)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 91)));
auto x_main_module_93 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_93 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {64, 256, 1, 1}}, 92)); migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 92));
auto x_main_module_94 = mmain->add_literal( auto x_main_module_94 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 93)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 93)));
auto x_main_module_95 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_95 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {256, 64, 1, 1}}, 94)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 94));
auto x_main_module_96 = mmain->add_literal( auto x_main_module_96 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 95)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 95));
auto x_main_module_97 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_97 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {64, 64, 3, 3}}, 96)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 96)));
auto x_main_module_98 = mmain->add_literal( auto x_main_module_98 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 97)); migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 97));
auto x_main_module_99 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_99 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {64, 256, 1, 1}}, 98)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 98)));
auto x_main_module_100 = mmain->add_literal( auto x_main_module_100 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 99)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 99));
auto x_main_module_101 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_101 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {256, 64, 1, 1}}, 100)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 100));
auto x_main_module_102 = mmain->add_literal( auto x_main_module_102 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 101)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 101));
auto x_main_module_103 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_103 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 64, 1, 1}}, 102)); migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 102));
auto x_main_module_104 = mmain->add_literal( auto x_main_module_104 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 103)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 103)));
auto x_main_module_105 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_105 = mmain->add_literal(
migraphx::shape{migraphx::shape::float_type, {64, 64, 3, 3}}, 104)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 104));
auto x_main_module_106 = mmain->add_literal( auto x_main_module_106 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 105)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 105));
auto x_main_module_107 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_107 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {64, 64, 1, 1}}, 106)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 106)));
auto x_main_module_108 = mmain->add_literal( auto x_main_module_108 = mmain->add_literal(migraphx::generate_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 107)); migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 107));
auto x_main_module_109 = mmain->add_literal(migraphx::generate_literal( auto x_main_module_109 = mmain->add_literal(migraphx::abs(
migraphx::shape{migraphx::shape::float_type, {64, 3, 7, 7}}, 108)); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 108)));
auto x_main_module_110 = mmain->add_instruction( auto x_main_module_110 = mmain->add_literal(
migraphx::make_op( migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 109));
"convolution", auto x_main_module_111 = mmain->add_literal(
migraphx::from_json_string( migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 110));
"{dilation:[1,1],group:1,padding:[3,3,3,3],padding_mode:0,stride:[2,2]}")), auto x_main_module_112 = mmain->add_literal(migraphx::abs(
x_input_1, migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 111)));
x_main_module_109); auto x_main_module_113 = mmain->add_literal(migraphx::generate_literal(
auto x_main_module_111 = mmain->add_instruction( migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 112));
migraphx::make_op("broadcast", auto x_main_module_114 = mmain->add_literal(migraphx::abs(
migraphx::from_json_string("{axis:1,out_lens:[1,64,112,112]}")), migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 113)));
x_main_module_108); auto x_main_module_115 = mmain->add_literal(
auto x_main_module_112 = migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 114));
mmain->add_instruction(migraphx::make_op("add"), x_main_module_110, x_main_module_111); auto x_main_module_116 = mmain->add_literal(
auto x_main_module_113 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_112); migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 115));
auto x_main_module_114 = mmain->add_instruction( auto x_main_module_117 = mmain->add_literal(
migraphx::make_op( migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 116));
auto x_main_module_118 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 117));
auto x_main_module_119 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 118)));
auto x_main_module_120 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 119));
auto x_main_module_121 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 120));
auto x_main_module_122 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 121)));
auto x_main_module_123 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 122));
auto x_main_module_124 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 123)));
auto x_main_module_125 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 124));
auto x_main_module_126 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 125));
auto x_main_module_127 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 126)));
auto x_main_module_128 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 1024, 1, 1}}, 127));
auto x_main_module_129 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 128)));
auto x_main_module_130 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 129));
auto x_main_module_131 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 130));
auto x_main_module_132 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 131));
auto x_main_module_133 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {1024, 512, 1, 1}}, 132));
auto x_main_module_134 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 133)));
auto x_main_module_135 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 134));
auto x_main_module_136 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 135));
auto x_main_module_137 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {1024}}, 136));
auto x_main_module_138 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {1024, 256, 1, 1}}, 137));
auto x_main_module_139 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 138)));
auto x_main_module_140 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 139));
auto x_main_module_141 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 140));
auto x_main_module_142 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 141)));
auto x_main_module_143 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 256, 3, 3}}, 142));
auto x_main_module_144 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 143)));
auto x_main_module_145 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 144));
auto x_main_module_146 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 145));
auto x_main_module_147 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 146)));
auto x_main_module_148 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 512, 1, 1}}, 147));
auto x_main_module_149 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 148)));
auto x_main_module_150 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 149));
auto x_main_module_151 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 150));
auto x_main_module_152 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 151));
auto x_main_module_153 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {512, 128, 1, 1}}, 152));
auto x_main_module_154 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 153)));
auto x_main_module_155 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 154));
auto x_main_module_156 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 155));
auto x_main_module_157 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 156)));
auto x_main_module_158 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {128, 128, 3, 3}}, 157));
auto x_main_module_159 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 158)));
auto x_main_module_160 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 159));
auto x_main_module_161 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 160));
auto x_main_module_162 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 161)));
auto x_main_module_163 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {128, 512, 1, 1}}, 162));
auto x_main_module_164 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 163)));
auto x_main_module_165 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 164));
auto x_main_module_166 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 165));
auto x_main_module_167 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 166));
auto x_main_module_168 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {512, 128, 1, 1}}, 167));
auto x_main_module_169 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 168)));
auto x_main_module_170 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 169));
auto x_main_module_171 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 170));
auto x_main_module_172 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 171)));
auto x_main_module_173 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {128, 128, 3, 3}}, 172));
auto x_main_module_174 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 173)));
auto x_main_module_175 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 174));
auto x_main_module_176 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 175));
auto x_main_module_177 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 176)));
auto x_main_module_178 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {128, 512, 1, 1}}, 177));
auto x_main_module_179 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 178)));
auto x_main_module_180 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 179));
auto x_main_module_181 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 180));
auto x_main_module_182 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 181));
auto x_main_module_183 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {512, 128, 1, 1}}, 182));
auto x_main_module_184 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 183)));
auto x_main_module_185 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 184));
auto x_main_module_186 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 185));
auto x_main_module_187 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 186)));
auto x_main_module_188 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {128, 128, 3, 3}}, 187));
auto x_main_module_189 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 188)));
auto x_main_module_190 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 189));
auto x_main_module_191 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 190));
auto x_main_module_192 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 191)));
auto x_main_module_193 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {128, 512, 1, 1}}, 192));
auto x_main_module_194 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 193)));
auto x_main_module_195 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 194));
auto x_main_module_196 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 195));
auto x_main_module_197 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 196));
auto x_main_module_198 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {512, 256, 1, 1}}, 197));
auto x_main_module_199 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 198)));
auto x_main_module_200 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 199));
auto x_main_module_201 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 200));
auto x_main_module_202 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {512}}, 201));
auto x_main_module_203 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {512, 128, 1, 1}}, 202));
auto x_main_module_204 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 203)));
auto x_main_module_205 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 204));
auto x_main_module_206 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 205));
auto x_main_module_207 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 206)));
auto x_main_module_208 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {128, 128, 3, 3}}, 207));
auto x_main_module_209 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 208)));
auto x_main_module_210 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 209));
auto x_main_module_211 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 210));
auto x_main_module_212 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {128}}, 211)));
auto x_main_module_213 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {128, 256, 1, 1}}, 212));
auto x_main_module_214 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 213)));
auto x_main_module_215 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 214));
auto x_main_module_216 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 215));
auto x_main_module_217 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 216));
auto x_main_module_218 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 64, 1, 1}}, 217));
auto x_main_module_219 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 218)));
auto x_main_module_220 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 219));
auto x_main_module_221 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 220));
auto x_main_module_222 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 221)));
auto x_main_module_223 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {64, 64, 3, 3}}, 222));
auto x_main_module_224 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 223)));
auto x_main_module_225 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 224));
auto x_main_module_226 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 225));
auto x_main_module_227 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 226)));
auto x_main_module_228 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {64, 256, 1, 1}}, 227));
auto x_main_module_229 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 228)));
auto x_main_module_230 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 229));
auto x_main_module_231 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 230));
auto x_main_module_232 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 231));
auto x_main_module_233 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 64, 1, 1}}, 232));
auto x_main_module_234 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 233)));
auto x_main_module_235 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 234));
auto x_main_module_236 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 235));
auto x_main_module_237 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 236)));
auto x_main_module_238 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {64, 64, 3, 3}}, 237));
auto x_main_module_239 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 238)));
auto x_main_module_240 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 239));
auto x_main_module_241 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 240));
auto x_main_module_242 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 241)));
auto x_main_module_243 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {64, 256, 1, 1}}, 242));
auto x_main_module_244 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 243)));
auto x_main_module_245 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 244));
auto x_main_module_246 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 245));
auto x_main_module_247 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 246));
auto x_main_module_248 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 64, 1, 1}}, 247));
auto x_main_module_249 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 248)));
auto x_main_module_250 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 249));
auto x_main_module_251 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 250));
auto x_main_module_252 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {256}}, 251));
auto x_main_module_253 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {256, 64, 1, 1}}, 252));
auto x_main_module_254 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 253)));
auto x_main_module_255 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 254));
auto x_main_module_256 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 255));
auto x_main_module_257 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 256)));
auto x_main_module_258 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {64, 64, 3, 3}}, 257));
auto x_main_module_259 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 258)));
auto x_main_module_260 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 259));
auto x_main_module_261 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 260));
auto x_main_module_262 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 261)));
auto x_main_module_263 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {64, 64, 1, 1}}, 262));
auto x_main_module_264 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 263)));
auto x_main_module_265 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 264));
auto x_main_module_266 = mmain->add_literal(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 265));
auto x_main_module_267 = mmain->add_literal(migraphx::abs(
migraphx::generate_literal(migraphx::shape{migraphx::shape::float_type, {64}}, 266)));
auto x_main_module_268 = mmain->add_literal(migraphx::generate_literal(
migraphx::shape{migraphx::shape::float_type, {64, 3, 7, 7}}, 267));
auto x_main_module_269 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[3,3,3,3],padding_mode:0,stride:[2,"
"2],use_dynamic_same_auto_pad:0}"),
x_0,
x_main_module_268);
auto x_main_module_270 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_269,
x_main_module_267,
x_main_module_266,
x_main_module_265,
x_main_module_264);
auto x_main_module_271 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_270);
auto x_main_module_272 = mmain->add_instruction(
migraphx::make_json_op(
"pooling", "pooling",
migraphx::from_json_string( "{ceil_mode:0,lengths:[3,3],lp_order:2,mode:1,padding:[1,1,1,1],stride:[2,2]}"),
"{ceil_mode:0,lengths:[3,3],lp_order:2,mode:1,padding:[1,1,1,1],stride:[2,2]}")), x_main_module_271);
auto x_main_module_273 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_272,
x_main_module_263);
auto x_main_module_274 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_273,
x_main_module_262,
x_main_module_261,
x_main_module_260,
x_main_module_259);
auto x_main_module_275 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_274);
auto x_main_module_276 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_275,
x_main_module_258);
auto x_main_module_277 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_276,
x_main_module_257,
x_main_module_256,
x_main_module_255,
x_main_module_254);
auto x_main_module_278 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_277);
auto x_main_module_279 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_278,
x_main_module_253);
auto x_main_module_280 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_279,
x_main_module_252,
x_main_module_251,
x_main_module_250,
x_main_module_249);
auto x_main_module_281 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_272,
x_main_module_248);
auto x_main_module_282 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_281,
x_main_module_247,
x_main_module_246,
x_main_module_245,
x_main_module_244);
auto x_main_module_283 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_280, x_main_module_282);
auto x_main_module_284 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_283);
auto x_main_module_285 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_284,
x_main_module_243);
auto x_main_module_286 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_285,
x_main_module_242,
x_main_module_241,
x_main_module_240,
x_main_module_239);
auto x_main_module_287 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_286);
auto x_main_module_288 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_287,
x_main_module_238);
auto x_main_module_289 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_288,
x_main_module_237,
x_main_module_236,
x_main_module_235,
x_main_module_234);
auto x_main_module_290 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_289);
auto x_main_module_291 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_290,
x_main_module_233);
auto x_main_module_292 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_291,
x_main_module_232,
x_main_module_231,
x_main_module_230,
x_main_module_229);
auto x_main_module_293 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_292, x_main_module_284);
auto x_main_module_294 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_293);
auto x_main_module_295 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_294,
x_main_module_228);
auto x_main_module_296 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_295,
x_main_module_227,
x_main_module_226,
x_main_module_225,
x_main_module_224);
auto x_main_module_297 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_296);
auto x_main_module_298 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_297,
x_main_module_223);
auto x_main_module_299 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_298,
x_main_module_222,
x_main_module_221,
x_main_module_220,
x_main_module_219);
auto x_main_module_300 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_299);
auto x_main_module_301 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_300,
x_main_module_218);
auto x_main_module_302 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_301,
x_main_module_217,
x_main_module_216,
x_main_module_215,
x_main_module_214);
auto x_main_module_303 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_302, x_main_module_294);
auto x_main_module_304 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_303);
auto x_main_module_305 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_304,
x_main_module_213);
auto x_main_module_306 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_305,
x_main_module_212,
x_main_module_211,
x_main_module_210,
x_main_module_209);
auto x_main_module_307 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_306);
auto x_main_module_308 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[2,"
"2],use_dynamic_same_auto_pad:0}"),
x_main_module_307,
x_main_module_208);
auto x_main_module_309 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_308,
x_main_module_207,
x_main_module_206,
x_main_module_205,
x_main_module_204);
auto x_main_module_310 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_309);
auto x_main_module_311 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_310,
x_main_module_203);
auto x_main_module_312 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_311,
x_main_module_202,
x_main_module_201,
x_main_module_200,
x_main_module_199);
auto x_main_module_313 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[2,"
"2],use_dynamic_same_auto_pad:0}"),
x_main_module_304,
x_main_module_198);
auto x_main_module_314 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_313,
x_main_module_197,
x_main_module_196,
x_main_module_195,
x_main_module_194);
auto x_main_module_315 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_312, x_main_module_314);
auto x_main_module_316 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_315);
auto x_main_module_317 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_316,
x_main_module_193);
auto x_main_module_318 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_317,
x_main_module_192,
x_main_module_191,
x_main_module_190,
x_main_module_189);
auto x_main_module_319 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_318);
auto x_main_module_320 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_319,
x_main_module_188);
auto x_main_module_321 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_320,
x_main_module_187,
x_main_module_186,
x_main_module_185,
x_main_module_184);
auto x_main_module_322 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_321);
auto x_main_module_323 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_322,
x_main_module_183);
auto x_main_module_324 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_323,
x_main_module_182,
x_main_module_181,
x_main_module_180,
x_main_module_179);
auto x_main_module_325 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_324, x_main_module_316);
auto x_main_module_326 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_325);
auto x_main_module_327 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_326,
x_main_module_178);
auto x_main_module_328 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_327,
x_main_module_177,
x_main_module_176,
x_main_module_175,
x_main_module_174);
auto x_main_module_329 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_328);
auto x_main_module_330 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_329,
x_main_module_173);
auto x_main_module_331 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_330,
x_main_module_172,
x_main_module_171,
x_main_module_170,
x_main_module_169);
auto x_main_module_332 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_331);
auto x_main_module_333 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_332,
x_main_module_168);
auto x_main_module_334 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_333,
x_main_module_167,
x_main_module_166,
x_main_module_165,
x_main_module_164);
auto x_main_module_335 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_334, x_main_module_326);
auto x_main_module_336 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_335);
auto x_main_module_337 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_336,
x_main_module_163);
auto x_main_module_338 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_337,
x_main_module_162,
x_main_module_161,
x_main_module_160,
x_main_module_159);
auto x_main_module_339 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_338);
auto x_main_module_340 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_339,
x_main_module_158);
auto x_main_module_341 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_340,
x_main_module_157,
x_main_module_156,
x_main_module_155,
x_main_module_154);
auto x_main_module_342 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_341);
auto x_main_module_343 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_342,
x_main_module_153);
auto x_main_module_344 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_343,
x_main_module_152,
x_main_module_151,
x_main_module_150,
x_main_module_149);
auto x_main_module_345 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_344, x_main_module_336);
auto x_main_module_346 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_345);
auto x_main_module_347 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_346,
x_main_module_148);
auto x_main_module_348 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_347,
x_main_module_147,
x_main_module_146,
x_main_module_145,
x_main_module_144);
auto x_main_module_349 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_348);
auto x_main_module_350 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[2,"
"2],use_dynamic_same_auto_pad:0}"),
x_main_module_349,
x_main_module_143);
auto x_main_module_351 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_350,
x_main_module_142,
x_main_module_141,
x_main_module_140,
x_main_module_139);
auto x_main_module_352 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_351);
auto x_main_module_353 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_352,
x_main_module_138);
auto x_main_module_354 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_353,
x_main_module_137,
x_main_module_136,
x_main_module_135,
x_main_module_134);
auto x_main_module_355 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[2,"
"2],use_dynamic_same_auto_pad:0}"),
x_main_module_346,
x_main_module_133);
auto x_main_module_356 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_355,
x_main_module_132,
x_main_module_131,
x_main_module_130,
x_main_module_129);
auto x_main_module_357 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_354, x_main_module_356);
auto x_main_module_358 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_357);
auto x_main_module_359 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_358,
x_main_module_128);
auto x_main_module_360 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_359,
x_main_module_127,
x_main_module_126,
x_main_module_125,
x_main_module_124);
auto x_main_module_361 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_360);
auto x_main_module_362 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_361,
x_main_module_123);
auto x_main_module_363 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_362,
x_main_module_122,
x_main_module_121,
x_main_module_120,
x_main_module_119);
auto x_main_module_364 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_363);
auto x_main_module_365 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_364,
x_main_module_118);
auto x_main_module_366 = mmain->add_instruction(
migraphx::make_json_op(
"batch_norm_inference",
"{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_365,
x_main_module_117,
x_main_module_116,
x_main_module_115,
x_main_module_114);
auto x_main_module_367 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_366, x_main_module_358);
auto x_main_module_368 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_367);
auto x_main_module_369 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_368,
x_main_module_113); x_main_module_113);
auto x_main_module_115 = mmain->add_instruction( auto x_main_module_370 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op(
"convolution", "batch_norm_inference",
migraphx::from_json_string( "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")), x_main_module_369,
x_main_module_114, x_main_module_112,
x_main_module_107); x_main_module_111,
auto x_main_module_116 = mmain->add_instruction( x_main_module_110,
migraphx::make_op("broadcast", x_main_module_109);
migraphx::from_json_string("{axis:1,out_lens:[1,64,56,56]}")), auto x_main_module_371 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_370);
x_main_module_106); auto x_main_module_372 = mmain->add_instruction(
auto x_main_module_117 = migraphx::make_json_op("convolution",
mmain->add_instruction(migraphx::make_op("add"), x_main_module_115, x_main_module_116); "{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
auto x_main_module_118 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_117); "1],use_dynamic_same_auto_pad:0}"),
auto x_main_module_119 = mmain->add_instruction( x_main_module_371,
migraphx::make_op( x_main_module_108);
"convolution", auto x_main_module_373 = mmain->add_instruction(
migraphx::from_json_string( migraphx::make_json_op(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")), "batch_norm_inference",
x_main_module_118, "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
x_main_module_105); x_main_module_372,
auto x_main_module_120 = mmain->add_instruction( x_main_module_107,
migraphx::make_op("broadcast", x_main_module_106,
migraphx::from_json_string("{axis:1,out_lens:[1,64,56,56]}")), x_main_module_105,
x_main_module_104); x_main_module_104);
auto x_main_module_121 = auto x_main_module_374 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_373);
mmain->add_instruction(migraphx::make_op("add"), x_main_module_119, x_main_module_120); auto x_main_module_375 = mmain->add_instruction(
auto x_main_module_122 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_121); migraphx::make_json_op("convolution",
auto x_main_module_123 = mmain->add_instruction( "{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
migraphx::make_op( "1],use_dynamic_same_auto_pad:0}"),
"convolution", x_main_module_374,
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_122,
x_main_module_103); x_main_module_103);
auto x_main_module_124 = mmain->add_instruction( auto x_main_module_376 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op(
migraphx::from_json_string("{axis:1,out_lens:[1,256,56,56]}")), "batch_norm_inference",
x_main_module_102); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_125 = x_main_module_375,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_123, x_main_module_124); x_main_module_102,
auto x_main_module_126 = mmain->add_instruction( x_main_module_101,
migraphx::make_op( x_main_module_100,
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_114,
x_main_module_101);
auto x_main_module_127 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,256,56,56]}")),
x_main_module_100);
auto x_main_module_128 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_126, x_main_module_127);
auto x_main_module_129 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_125, x_main_module_128);
auto x_main_module_130 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_129);
auto x_main_module_131 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_130,
x_main_module_99); x_main_module_99);
auto x_main_module_132 = mmain->add_instruction( auto x_main_module_377 =
migraphx::make_op("broadcast", mmain->add_instruction(migraphx::make_op("add"), x_main_module_376, x_main_module_368);
migraphx::from_json_string("{axis:1,out_lens:[1,64,56,56]}")), auto x_main_module_378 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_377);
auto x_main_module_379 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_378,
x_main_module_98); x_main_module_98);
auto x_main_module_133 = auto x_main_module_380 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_131, x_main_module_132); migraphx::make_json_op(
auto x_main_module_134 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_133); "batch_norm_inference",
auto x_main_module_135 = mmain->add_instruction( "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
migraphx::make_op( x_main_module_379,
"convolution", x_main_module_97,
migraphx::from_json_string( x_main_module_96,
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")), x_main_module_95,
x_main_module_134,
x_main_module_97);
auto x_main_module_136 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,64,56,56]}")),
x_main_module_96);
auto x_main_module_137 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_135, x_main_module_136);
auto x_main_module_138 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_137);
auto x_main_module_139 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_138,
x_main_module_95);
auto x_main_module_140 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,256,56,56]}")),
x_main_module_94); x_main_module_94);
auto x_main_module_141 = auto x_main_module_381 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_380);
mmain->add_instruction(migraphx::make_op("add"), x_main_module_139, x_main_module_140); auto x_main_module_382 = mmain->add_instruction(
auto x_main_module_142 = migraphx::make_json_op("convolution",
mmain->add_instruction(migraphx::make_op("add"), x_main_module_141, x_main_module_130); "{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
auto x_main_module_143 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_142); "1],use_dynamic_same_auto_pad:0}"),
auto x_main_module_144 = mmain->add_instruction( x_main_module_381,
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_143,
x_main_module_93); x_main_module_93);
auto x_main_module_145 = mmain->add_instruction( auto x_main_module_383 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op(
migraphx::from_json_string("{axis:1,out_lens:[1,64,56,56]}")), "batch_norm_inference",
x_main_module_92); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_146 = x_main_module_382,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_144, x_main_module_145); x_main_module_92,
auto x_main_module_147 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_146); x_main_module_91,
auto x_main_module_148 = mmain->add_instruction( x_main_module_90,
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_147,
x_main_module_91);
auto x_main_module_149 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,64,56,56]}")),
x_main_module_90);
auto x_main_module_150 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_148, x_main_module_149);
auto x_main_module_151 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_150);
auto x_main_module_152 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_151,
x_main_module_89); x_main_module_89);
auto x_main_module_153 = mmain->add_instruction( auto x_main_module_384 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_383);
migraphx::make_op("broadcast", auto x_main_module_385 = mmain->add_instruction(
migraphx::from_json_string("{axis:1,out_lens:[1,256,56,56]}")), migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_384,
x_main_module_88); x_main_module_88);
auto x_main_module_154 = auto x_main_module_386 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_152, x_main_module_153); migraphx::make_json_op(
auto x_main_module_155 = "batch_norm_inference",
mmain->add_instruction(migraphx::make_op("add"), x_main_module_154, x_main_module_143); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_156 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_155); x_main_module_385,
auto x_main_module_157 = mmain->add_instruction( x_main_module_87,
migraphx::make_op( x_main_module_86,
"convolution", x_main_module_85,
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_156,
x_main_module_87);
auto x_main_module_158 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,128,56,56]}")),
x_main_module_86);
auto x_main_module_159 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_157, x_main_module_158);
auto x_main_module_160 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_159);
auto x_main_module_161 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[2,2]}")),
x_main_module_160,
x_main_module_85);
auto x_main_module_162 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,128,28,28]}")),
x_main_module_84); x_main_module_84);
auto x_main_module_163 = auto x_main_module_387 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_161, x_main_module_162); mmain->add_instruction(migraphx::make_op("add"), x_main_module_386, x_main_module_378);
auto x_main_module_164 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_163); auto x_main_module_388 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_387);
auto x_main_module_165 = mmain->add_instruction( auto x_main_module_389 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op("convolution",
"convolution", "{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
migraphx::from_json_string( "1],use_dynamic_same_auto_pad:0}"),
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")), x_main_module_388,
x_main_module_164,
x_main_module_83); x_main_module_83);
auto x_main_module_166 = mmain->add_instruction( auto x_main_module_390 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op(
migraphx::from_json_string("{axis:1,out_lens:[1,512,28,28]}")), "batch_norm_inference",
x_main_module_82); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_167 = x_main_module_389,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_165, x_main_module_166); x_main_module_82,
auto x_main_module_168 = mmain->add_instruction( x_main_module_81,
migraphx::make_op( x_main_module_80,
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[2,2]}")),
x_main_module_156,
x_main_module_81);
auto x_main_module_169 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,512,28,28]}")),
x_main_module_80);
auto x_main_module_170 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_168, x_main_module_169);
auto x_main_module_171 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_167, x_main_module_170);
auto x_main_module_172 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_171);
auto x_main_module_173 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_172,
x_main_module_79); x_main_module_79);
auto x_main_module_174 = mmain->add_instruction( auto x_main_module_391 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_390);
migraphx::make_op("broadcast", auto x_main_module_392 = mmain->add_instruction(
migraphx::from_json_string("{axis:1,out_lens:[1,128,28,28]}")), migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_391,
x_main_module_78); x_main_module_78);
auto x_main_module_175 = auto x_main_module_393 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_173, x_main_module_174); migraphx::make_json_op(
auto x_main_module_176 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_175); "batch_norm_inference",
auto x_main_module_177 = mmain->add_instruction( "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
migraphx::make_op( x_main_module_392,
"convolution", x_main_module_77,
migraphx::from_json_string( x_main_module_76,
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")), x_main_module_75,
x_main_module_176,
x_main_module_77);
auto x_main_module_178 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,128,28,28]}")),
x_main_module_76);
auto x_main_module_179 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_177, x_main_module_178);
auto x_main_module_180 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_179);
auto x_main_module_181 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_180,
x_main_module_75);
auto x_main_module_182 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,512,28,28]}")),
x_main_module_74); x_main_module_74);
auto x_main_module_183 = auto x_main_module_394 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_393);
mmain->add_instruction(migraphx::make_op("add"), x_main_module_181, x_main_module_182); auto x_main_module_395 = mmain->add_instruction(
auto x_main_module_184 = migraphx::make_json_op("convolution",
mmain->add_instruction(migraphx::make_op("add"), x_main_module_183, x_main_module_172); "{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
auto x_main_module_185 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_184); "1],use_dynamic_same_auto_pad:0}"),
auto x_main_module_186 = mmain->add_instruction( x_main_module_394,
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_185,
x_main_module_73); x_main_module_73);
auto x_main_module_187 = mmain->add_instruction( auto x_main_module_396 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op(
migraphx::from_json_string("{axis:1,out_lens:[1,128,28,28]}")), "batch_norm_inference",
x_main_module_72); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_188 = x_main_module_395,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_186, x_main_module_187); x_main_module_72,
auto x_main_module_189 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_188); x_main_module_71,
auto x_main_module_190 = mmain->add_instruction( x_main_module_70,
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_189,
x_main_module_71);
auto x_main_module_191 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,128,28,28]}")),
x_main_module_70);
auto x_main_module_192 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_190, x_main_module_191);
auto x_main_module_193 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_192);
auto x_main_module_194 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_193,
x_main_module_69); x_main_module_69);
auto x_main_module_195 = mmain->add_instruction( auto x_main_module_397 =
migraphx::make_op("broadcast", mmain->add_instruction(migraphx::make_op("add"), x_main_module_396, x_main_module_388);
migraphx::from_json_string("{axis:1,out_lens:[1,512,28,28]}")), auto x_main_module_398 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_397);
auto x_main_module_399 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_398,
x_main_module_68); x_main_module_68);
auto x_main_module_196 = auto x_main_module_400 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_194, x_main_module_195); migraphx::make_json_op(
auto x_main_module_197 = "batch_norm_inference",
mmain->add_instruction(migraphx::make_op("add"), x_main_module_196, x_main_module_185); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_198 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_197); x_main_module_399,
auto x_main_module_199 = mmain->add_instruction( x_main_module_67,
migraphx::make_op( x_main_module_66,
"convolution", x_main_module_65,
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_198,
x_main_module_67);
auto x_main_module_200 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,128,28,28]}")),
x_main_module_66);
auto x_main_module_201 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_199, x_main_module_200);
auto x_main_module_202 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_201);
auto x_main_module_203 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_202,
x_main_module_65);
auto x_main_module_204 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,128,28,28]}")),
x_main_module_64); x_main_module_64);
auto x_main_module_205 = auto x_main_module_401 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_400);
mmain->add_instruction(migraphx::make_op("add"), x_main_module_203, x_main_module_204); auto x_main_module_402 = mmain->add_instruction(
auto x_main_module_206 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_205); migraphx::make_json_op("convolution",
auto x_main_module_207 = mmain->add_instruction( "{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
migraphx::make_op( "1],use_dynamic_same_auto_pad:0}"),
"convolution", x_main_module_401,
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_206,
x_main_module_63); x_main_module_63);
auto x_main_module_208 = mmain->add_instruction( auto x_main_module_403 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op(
migraphx::from_json_string("{axis:1,out_lens:[1,512,28,28]}")), "batch_norm_inference",
x_main_module_62); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_209 = x_main_module_402,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_207, x_main_module_208); x_main_module_62,
auto x_main_module_210 = x_main_module_61,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_209, x_main_module_198); x_main_module_60,
auto x_main_module_211 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_210);
auto x_main_module_212 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_211,
x_main_module_61);
auto x_main_module_213 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,256,28,28]}")),
x_main_module_60);
auto x_main_module_214 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_212, x_main_module_213);
auto x_main_module_215 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_214);
auto x_main_module_216 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[2,2]}")),
x_main_module_215,
x_main_module_59); x_main_module_59);
auto x_main_module_217 = mmain->add_instruction( auto x_main_module_404 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_403);
migraphx::make_op("broadcast", auto x_main_module_405 = mmain->add_instruction(
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")), migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_404,
x_main_module_58); x_main_module_58);
auto x_main_module_218 = auto x_main_module_406 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_216, x_main_module_217); migraphx::make_json_op(
auto x_main_module_219 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_218); "batch_norm_inference",
auto x_main_module_220 = mmain->add_instruction( "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
migraphx::make_op( x_main_module_405,
"convolution", x_main_module_57,
migraphx::from_json_string( x_main_module_56,
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")), x_main_module_55,
x_main_module_219,
x_main_module_57);
auto x_main_module_221 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,1024,14,14]}")),
x_main_module_56);
auto x_main_module_222 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_220, x_main_module_221);
auto x_main_module_223 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[2,2]}")),
x_main_module_211,
x_main_module_55);
auto x_main_module_224 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,1024,14,14]}")),
x_main_module_54); x_main_module_54);
auto x_main_module_225 = auto x_main_module_407 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_223, x_main_module_224); mmain->add_instruction(migraphx::make_op("add"), x_main_module_406, x_main_module_398);
auto x_main_module_226 = auto x_main_module_408 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_407);
mmain->add_instruction(migraphx::make_op("add"), x_main_module_222, x_main_module_225); auto x_main_module_409 = mmain->add_instruction(
auto x_main_module_227 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_226); migraphx::make_json_op("convolution",
auto x_main_module_228 = mmain->add_instruction( "{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
migraphx::make_op( "1],use_dynamic_same_auto_pad:0}"),
"convolution", x_main_module_408,
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_227,
x_main_module_53); x_main_module_53);
auto x_main_module_229 = mmain->add_instruction( auto x_main_module_410 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op(
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")), "batch_norm_inference",
x_main_module_52); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_230 = x_main_module_409,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_228, x_main_module_229); x_main_module_52,
auto x_main_module_231 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_230); x_main_module_51,
auto x_main_module_232 = mmain->add_instruction( x_main_module_50,
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_231,
x_main_module_51);
auto x_main_module_233 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")),
x_main_module_50);
auto x_main_module_234 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_232, x_main_module_233);
auto x_main_module_235 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_234);
auto x_main_module_236 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_235,
x_main_module_49); x_main_module_49);
auto x_main_module_237 = mmain->add_instruction( auto x_main_module_411 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_410);
migraphx::make_op("broadcast", auto x_main_module_412 = mmain->add_instruction(
migraphx::from_json_string("{axis:1,out_lens:[1,1024,14,14]}")), migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[2,"
"2],use_dynamic_same_auto_pad:0}"),
x_main_module_411,
x_main_module_48); x_main_module_48);
auto x_main_module_238 = auto x_main_module_413 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_236, x_main_module_237); migraphx::make_json_op(
auto x_main_module_239 = "batch_norm_inference",
mmain->add_instruction(migraphx::make_op("add"), x_main_module_238, x_main_module_227); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_240 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_239); x_main_module_412,
auto x_main_module_241 = mmain->add_instruction( x_main_module_47,
migraphx::make_op( x_main_module_46,
"convolution", x_main_module_45,
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_240,
x_main_module_47);
auto x_main_module_242 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")),
x_main_module_46);
auto x_main_module_243 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_241, x_main_module_242);
auto x_main_module_244 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_243);
auto x_main_module_245 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_244,
x_main_module_45);
auto x_main_module_246 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")),
x_main_module_44); x_main_module_44);
auto x_main_module_247 = auto x_main_module_414 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_413);
mmain->add_instruction(migraphx::make_op("add"), x_main_module_245, x_main_module_246); auto x_main_module_415 = mmain->add_instruction(
auto x_main_module_248 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_247); migraphx::make_json_op("convolution",
auto x_main_module_249 = mmain->add_instruction( "{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
migraphx::make_op( "1],use_dynamic_same_auto_pad:0}"),
"convolution", x_main_module_414,
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_248,
x_main_module_43); x_main_module_43);
auto x_main_module_250 = mmain->add_instruction( auto x_main_module_416 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op(
migraphx::from_json_string("{axis:1,out_lens:[1,1024,14,14]}")), "batch_norm_inference",
x_main_module_42); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_251 = x_main_module_415,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_249, x_main_module_250); x_main_module_42,
auto x_main_module_252 = x_main_module_41,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_251, x_main_module_240); x_main_module_40,
auto x_main_module_253 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_252);
auto x_main_module_254 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_253,
x_main_module_41);
auto x_main_module_255 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")),
x_main_module_40);
auto x_main_module_256 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_254, x_main_module_255);
auto x_main_module_257 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_256);
auto x_main_module_258 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_257,
x_main_module_39); x_main_module_39);
auto x_main_module_259 = mmain->add_instruction( auto x_main_module_417 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op("convolution",
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")), "{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[2,"
"2],use_dynamic_same_auto_pad:0}"),
x_main_module_408,
x_main_module_38); x_main_module_38);
auto x_main_module_260 = auto x_main_module_418 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_258, x_main_module_259); migraphx::make_json_op(
auto x_main_module_261 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_260); "batch_norm_inference",
auto x_main_module_262 = mmain->add_instruction( "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
migraphx::make_op( x_main_module_417,
"convolution", x_main_module_37,
migraphx::from_json_string( x_main_module_36,
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")), x_main_module_35,
x_main_module_261,
x_main_module_37);
auto x_main_module_263 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,1024,14,14]}")),
x_main_module_36);
auto x_main_module_264 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_262, x_main_module_263);
auto x_main_module_265 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_264, x_main_module_253);
auto x_main_module_266 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_265);
auto x_main_module_267 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_266,
x_main_module_35);
auto x_main_module_268 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")),
x_main_module_34); x_main_module_34);
auto x_main_module_269 = auto x_main_module_419 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_267, x_main_module_268); mmain->add_instruction(migraphx::make_op("add"), x_main_module_416, x_main_module_418);
auto x_main_module_270 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_269); auto x_main_module_420 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_419);
auto x_main_module_271 = mmain->add_instruction( auto x_main_module_421 = mmain->add_instruction(
migraphx::make_op( migraphx::make_json_op("convolution",
"convolution", "{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
migraphx::from_json_string( "1],use_dynamic_same_auto_pad:0}"),
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")), x_main_module_420,
x_main_module_270,
x_main_module_33); x_main_module_33);
auto x_main_module_272 = mmain->add_instruction( auto x_main_module_422 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op(
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")), "batch_norm_inference",
x_main_module_32); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_273 = x_main_module_421,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_271, x_main_module_272); x_main_module_32,
auto x_main_module_274 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_273); x_main_module_31,
auto x_main_module_275 = mmain->add_instruction( x_main_module_30,
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_274,
x_main_module_31);
auto x_main_module_276 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,1024,14,14]}")),
x_main_module_30);
auto x_main_module_277 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_275, x_main_module_276);
auto x_main_module_278 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_277, x_main_module_266);
auto x_main_module_279 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_278);
auto x_main_module_280 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_279,
x_main_module_29); x_main_module_29);
auto x_main_module_281 = mmain->add_instruction( auto x_main_module_423 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_422);
migraphx::make_op("broadcast", auto x_main_module_424 = mmain->add_instruction(
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")), migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_423,
x_main_module_28); x_main_module_28);
auto x_main_module_282 = auto x_main_module_425 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_280, x_main_module_281); migraphx::make_json_op(
auto x_main_module_283 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_282); "batch_norm_inference",
auto x_main_module_284 = mmain->add_instruction( "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
migraphx::make_op( x_main_module_424,
"convolution", x_main_module_27,
migraphx::from_json_string( x_main_module_26,
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")), x_main_module_25,
x_main_module_283,
x_main_module_27);
auto x_main_module_285 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,256,14,14]}")),
x_main_module_26);
auto x_main_module_286 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_284, x_main_module_285);
auto x_main_module_287 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_286);
auto x_main_module_288 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_287,
x_main_module_25);
auto x_main_module_289 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,1024,14,14]}")),
x_main_module_24); x_main_module_24);
auto x_main_module_290 = auto x_main_module_426 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_425);
mmain->add_instruction(migraphx::make_op("add"), x_main_module_288, x_main_module_289); auto x_main_module_427 = mmain->add_instruction(
auto x_main_module_291 = migraphx::make_json_op("convolution",
mmain->add_instruction(migraphx::make_op("add"), x_main_module_290, x_main_module_279); "{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
auto x_main_module_292 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_291); "1],use_dynamic_same_auto_pad:0}"),
auto x_main_module_293 = mmain->add_instruction( x_main_module_426,
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_292,
x_main_module_23); x_main_module_23);
auto x_main_module_294 = mmain->add_instruction( auto x_main_module_428 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::make_json_op(
migraphx::from_json_string("{axis:1,out_lens:[1,512,14,14]}")), "batch_norm_inference",
x_main_module_22); "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
auto x_main_module_295 = x_main_module_427,
mmain->add_instruction(migraphx::make_op("add"), x_main_module_293, x_main_module_294); x_main_module_22,
auto x_main_module_296 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_295); x_main_module_21,
auto x_main_module_297 = mmain->add_instruction( x_main_module_20,
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[2,2]}")),
x_main_module_296,
x_main_module_21);
auto x_main_module_298 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::from_json_string("{axis:1,out_lens:[1,512,7,7]}")),
x_main_module_20);
auto x_main_module_299 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_297, x_main_module_298);
auto x_main_module_300 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_299);
auto x_main_module_301 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_300,
x_main_module_19); x_main_module_19);
auto x_main_module_302 = mmain->add_instruction( auto x_main_module_429 =
migraphx::make_op("broadcast", mmain->add_instruction(migraphx::make_op("add"), x_main_module_428, x_main_module_420);
migraphx::from_json_string("{axis:1,out_lens:[1,2048,7,7]}")), auto x_main_module_430 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_429);
auto x_main_module_431 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_430,
x_main_module_18); x_main_module_18);
auto x_main_module_303 = auto x_main_module_432 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_301, x_main_module_302); migraphx::make_json_op(
auto x_main_module_304 = mmain->add_instruction( "batch_norm_inference",
migraphx::make_op( "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
"convolution", x_main_module_431,
migraphx::from_json_string( x_main_module_17,
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[2,2]}")), x_main_module_16,
x_main_module_292, x_main_module_15,
x_main_module_17);
auto x_main_module_305 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,2048,7,7]}")),
x_main_module_16);
auto x_main_module_306 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_304, x_main_module_305);
auto x_main_module_307 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_303, x_main_module_306);
auto x_main_module_308 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_307);
auto x_main_module_309 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_308,
x_main_module_15);
auto x_main_module_310 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::from_json_string("{axis:1,out_lens:[1,512,7,7]}")),
x_main_module_14); x_main_module_14);
auto x_main_module_311 = auto x_main_module_433 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_432);
mmain->add_instruction(migraphx::make_op("add"), x_main_module_309, x_main_module_310); auto x_main_module_434 = mmain->add_instruction(
auto x_main_module_312 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_311); migraphx::make_json_op("convolution",
auto x_main_module_313 = mmain->add_instruction( "{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,"
migraphx::make_op( "1],use_dynamic_same_auto_pad:0}"),
"convolution", x_main_module_433,
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")),
x_main_module_312,
x_main_module_13); x_main_module_13);
auto x_main_module_314 = mmain->add_instruction( auto x_main_module_435 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::from_json_string("{axis:1,out_lens:[1,512,7,7]}")), migraphx::make_json_op(
x_main_module_12); "batch_norm_inference",
auto x_main_module_315 = "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
mmain->add_instruction(migraphx::make_op("add"), x_main_module_313, x_main_module_314); x_main_module_434,
auto x_main_module_316 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_315); x_main_module_12,
auto x_main_module_317 = mmain->add_instruction( x_main_module_11,
migraphx::make_op( x_main_module_10,
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_316,
x_main_module_11);
auto x_main_module_318 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,2048,7,7]}")),
x_main_module_10);
auto x_main_module_319 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_317, x_main_module_318);
auto x_main_module_320 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_319, x_main_module_308);
auto x_main_module_321 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_320);
auto x_main_module_322 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_321,
x_main_module_9); x_main_module_9);
auto x_main_module_323 = mmain->add_instruction( auto x_main_module_436 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_435);
migraphx::make_op("broadcast", migraphx::from_json_string("{axis:1,out_lens:[1,512,7,7]}")), auto x_main_module_437 = mmain->add_instruction(
migraphx::make_json_op("convolution",
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,"
"1],use_dynamic_same_auto_pad:0}"),
x_main_module_436,
x_main_module_8); x_main_module_8);
auto x_main_module_324 = auto x_main_module_438 = mmain->add_instruction(
mmain->add_instruction(migraphx::make_op("add"), x_main_module_322, x_main_module_323); migraphx::make_json_op(
auto x_main_module_325 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_324); "batch_norm_inference",
auto x_main_module_326 = mmain->add_instruction( "{bn_mode:1,epsilon:9.999999747378752e-06,momentum:0.8999999761581421}"),
migraphx::make_op( x_main_module_437,
"convolution", x_main_module_7,
migraphx::from_json_string( x_main_module_6,
"{dilation:[1,1],group:1,padding:[1,1,1,1],padding_mode:0,stride:[1,1]}")), x_main_module_5,
x_main_module_325,
x_main_module_7);
auto x_main_module_327 = mmain->add_instruction(
migraphx::make_op("broadcast", migraphx::from_json_string("{axis:1,out_lens:[1,512,7,7]}")),
x_main_module_6);
auto x_main_module_328 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_326, x_main_module_327);
auto x_main_module_329 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_328);
auto x_main_module_330 = mmain->add_instruction(
migraphx::make_op(
"convolution",
migraphx::from_json_string(
"{dilation:[1,1],group:1,padding:[0,0,0,0],padding_mode:0,stride:[1,1]}")),
x_main_module_329,
x_main_module_5);
auto x_main_module_331 = mmain->add_instruction(
migraphx::make_op("broadcast",
migraphx::from_json_string("{axis:1,out_lens:[1,2048,7,7]}")),
x_main_module_4); x_main_module_4);
auto x_main_module_332 = auto x_main_module_439 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_330, x_main_module_331); mmain->add_instruction(migraphx::make_op("add"), x_main_module_438, x_main_module_430);
auto x_main_module_333 = auto x_main_module_440 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_439);
mmain->add_instruction(migraphx::make_op("add"), x_main_module_332, x_main_module_321); auto x_main_module_441 = mmain->add_instruction(
auto x_main_module_334 = mmain->add_instruction(migraphx::make_op("relu"), x_main_module_333); migraphx::make_json_op(
auto x_main_module_335 = mmain->add_instruction(
migraphx::make_op(
"pooling", "pooling",
migraphx::from_json_string( "{ceil_mode:0,lengths:[7,7],lp_order:2,mode:0,padding:[0,0,0,0],stride:[1,1]}"),
"{ceil_mode:0,lengths:[7,7],lp_order:2,mode:0,padding:[0,0,0,0],stride:[1,1]}")), x_main_module_440);
x_main_module_334); auto x_main_module_442 =
auto x_main_module_336 = mmain->add_instruction( mmain->add_instruction(migraphx::make_json_op("flatten", "{axis:1}"), x_main_module_441);
migraphx::make_op("reshape", migraphx::from_json_string("{dims:[1,-1]}")), auto x_main_module_443 = mmain->add_instruction(
x_main_module_335); migraphx::make_json_op("transpose", "{permutation:[1,0]}"), x_main_module_3);
auto x_main_module_337 = mmain->add_instruction( auto x_main_module_444 =
migraphx::make_op("transpose", migraphx::from_json_string("{permutation:[1,0]}")), mmain->add_instruction(migraphx::make_op("dot"), x_main_module_442, x_main_module_443);
x_main_module_2); auto x_main_module_445 = mmain->add_instruction(
auto x_main_module_338 = migraphx::make_json_op("multibroadcast", "{out_lens:[1,1000]}"), x_main_module_2);
mmain->add_instruction(migraphx::make_op("dot"), x_main_module_336, x_main_module_337); auto x_main_module_446 = mmain->add_instruction(
auto x_main_module_339 = mmain->add_instruction( migraphx::make_json_op("multibroadcast", "{out_lens:[1,1000]}"), x_main_module_0);
migraphx::make_op("multibroadcast", migraphx::from_json_string("{out_lens:[1,1000]}")), auto x_main_module_447 =
x_main_module_3); mmain->add_instruction(migraphx::make_op("mul"), x_main_module_445, x_main_module_446);
auto x_main_module_340 = mmain->add_instruction( auto x_main_module_448 =
migraphx::make_op("multibroadcast", migraphx::from_json_string("{out_lens:[1,1000]}")), mmain->add_instruction(migraphx::make_op("add"), x_main_module_444, x_main_module_447);
x_main_module_0); mmain->add_return({x_main_module_448});
auto x_main_module_341 =
mmain->add_instruction(migraphx::make_op("mul"), x_main_module_339, x_main_module_340);
auto x_main_module_342 =
mmain->add_instruction(migraphx::make_op("add"), x_main_module_338, x_main_module_341);
mmain->add_return({x_main_module_342});
return p; return p;
} }
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#include <migraphx/config.hpp> #include <migraphx/config.hpp>
#include <migraphx/operation.hpp> #include <migraphx/operation.hpp>
#include <migraphx/value.hpp> #include <migraphx/value.hpp>
#include <migraphx/json.hpp>
#include <migraphx/convert_to_json.hpp>
namespace migraphx { namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS { inline namespace MIGRAPHX_INLINE_NS {
...@@ -46,6 +48,8 @@ operation make_op(const std::string& name, const Value& v) ...@@ -46,6 +48,8 @@ operation make_op(const std::string& name, const Value& v)
return make_op_from_value(name, v); return make_op_from_value(name, v);
} }
operation make_json_op(const std::string& name, const std::string& s);
} // namespace MIGRAPHX_INLINE_NS } // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx } // namespace migraphx
......
...@@ -35,17 +35,13 @@ struct onnx_options ...@@ -35,17 +35,13 @@ struct onnx_options
{ {
/// Old way to set default fixed dimension size /// Old way to set default fixed dimension size
std::size_t default_dim_value = 0; std::size_t default_dim_value = 0;
/*! /// Default dynamic dimension size (if both default_dim_value and default_dyn_dim_value set
* Default dynamic dimension size (if both default_dim_value and default_dyn_dim_value /// parser throws)
* set parser throws)
*/
shape::dynamic_dimension default_dyn_dim_value = {1, 1, 0}; shape::dynamic_dimension default_dyn_dim_value = {1, 1, 0};
/// Explicitly specify the dims of an input /// Explicitly specify the dims of an input
std::unordered_map<std::string, std::vector<std::size_t>> map_input_dims = {}; std::unordered_map<std::string, std::vector<std::size_t>> map_input_dims = {};
/*! /// Explicitly specify dynamic dims of an input (if both map_input_dims and map_dyn_input_dims
* Explicitly specify dynamic dims of an input (if both map_input_dims and /// set parser throws)
* map_dyn_input_dims set parser throws)
*/
std::unordered_map<std::string, std::vector<shape::dynamic_dimension>> map_dyn_input_dims = {}; std::unordered_map<std::string, std::vector<shape::dynamic_dimension>> map_dyn_input_dims = {};
/// Continue parsing onnx file if an unknown operator is found /// Continue parsing onnx file if an unknown operator is found
bool skip_unknown_operators = false; bool skip_unknown_operators = false;
...@@ -53,6 +49,8 @@ struct onnx_options ...@@ -53,6 +49,8 @@ struct onnx_options
bool print_program_on_error = false; bool print_program_on_error = false;
/// Max iter num for the loop operator /// Max iter num for the loop operator
int64_t max_loop_iterations = 10; int64_t max_loop_iterations = 10;
/// Use dynamic output for operators when available
bool use_dyn_output = false;
}; };
/// Create a program from an onnx file /// Create a program from an onnx file
......
...@@ -45,7 +45,15 @@ struct convert : unary<convert> ...@@ -45,7 +45,15 @@ struct convert : unary<convert>
shape compute_shape(std::vector<shape> inputs) const shape compute_shape(std::vector<shape> inputs) const
{ {
check_shapes{inputs, *this}.has(1); check_shapes{inputs, *this}.has(1);
return {target_type, inputs.at(0).lens(), inputs.at(0).strides()}; auto input = inputs.at(0);
if(input.dynamic())
{
return {target_type, input.dyn_dims()};
}
else
{
return {target_type, input.lens(), input.strides()};
}
} }
std::string point_op() const std::string point_op() const
......
...@@ -45,11 +45,13 @@ namespace op { ...@@ -45,11 +45,13 @@ namespace op {
struct nonmaxsuppression struct nonmaxsuppression
{ {
bool center_point_box = false; bool center_point_box = false;
bool use_dyn_output = false;
template <class Self, class F> template <class Self, class F>
static auto reflect(Self& self, F f) static auto reflect(Self& self, F f)
{ {
return pack(f(self.center_point_box, "center_point_box")); return pack(f(self.center_point_box, "center_point_box"),
f(self.use_dyn_output, "use_dyn_output"));
} }
std::string name() const { return "nonmaxsuppression"; } std::string name() const { return "nonmaxsuppression"; }
...@@ -57,27 +59,81 @@ struct nonmaxsuppression ...@@ -57,27 +59,81 @@ struct nonmaxsuppression
shape compute_shape(std::vector<shape> inputs) const shape compute_shape(std::vector<shape> inputs) const
{ {
// requires at least 2 inputs // requires at least 2 inputs
check_shapes{{inputs.at(0), inputs.at(1)}, *this}.only_dims(3); check_shapes{{inputs.at(0), inputs.at(1)}, *this, true}.only_dims(3).same_ndims();
auto lens = inputs.front().lens(); auto boxes_max_lens = inputs.at(0).max_lens();
// num batches * num boxes
const auto max_num_boxes = boxes_max_lens.at(0) * boxes_max_lens.at(1);
// check input shape auto fixed_shape_error_check = [&]() {
if(lens[1] != inputs.at(1).lens()[2]) auto lens = inputs.front().lens();
if(lens[1] != inputs.at(1).lens()[2])
{
MIGRAPHX_THROW(
"NonMaxSuppression: spatial dimension mismatch between boxes and scores input");
}
if(lens[0] != inputs.at(1).lens()[0])
{
MIGRAPHX_THROW(
"NonMaxSuppression: number of batches mismatch between boxes and scores input");
}
};
if(use_dyn_output)
{ {
MIGRAPHX_THROW( if(inputs.at(0).dynamic())
"NonMaxSuppression: spatial dimension mismatch between boxes and scores input"); {
// both boxes and scores should be dynamic
// check dynamic dimensions are consistent
const auto boxes_dims = inputs.at(0).dyn_dims();
const auto scores_dims = inputs.at(1).dyn_dims();
if(boxes_dims.at(1) != scores_dims.at(2))
{
MIGRAPHX_THROW("NonMaxSuppression: dynamic spatial dimension mismatch between "
"boxes and scores input");
}
if(boxes_dims.at(0) != scores_dims.at(0))
{
MIGRAPHX_THROW("NonMaxSuppression: dynamic number of batches mismatch between "
"boxes and scores input");
}
}
else if(inputs.at(1).dynamic())
{
// scores has dynamic shape, boxes fixed shape
// check that it is only a dynamic number of classes
const auto scores_dims = inputs.at(1).dyn_dims();
const auto boxes_lens = inputs.at(0).lens();
if(not scores_dims.at(0).is_fixed() or scores_dims.at(0).max != boxes_lens.at(0))
{
MIGRAPHX_THROW("NonMaxSuppression: scores dynamic num_classes; num_batches not "
"fixed or mismatched");
}
if(not scores_dims.at(2).is_fixed() or scores_dims.at(2).max != boxes_lens.at(1))
{
MIGRAPHX_THROW("NonMaxSuppression: scores dynamic num_classes; "
"spatial_dimension not fixed or mismatches");
}
}
else
{
fixed_shape_error_check();
}
std::vector<shape::dynamic_dimension> out_lens = {};
out_lens.push_back({0, max_num_boxes, 0});
out_lens.push_back({3, 3, 0});
return {shape::int64_type, out_lens};
} }
else
// check batch sizes
if(lens[0] != inputs.at(1).lens()[0])
{ {
MIGRAPHX_THROW( if(inputs.at(0).dynamic() or inputs.at(1).dynamic())
"NonMaxSuppression: number of batches mismatch between boxes and scores input"); {
MIGRAPHX_THROW(
"NonMaxSuppression: dynamic input shape with use_dyn_output set to false");
}
fixed_shape_error_check();
std::vector<std::size_t> out_lens = {max_num_boxes, 3};
return {shape::int64_type, out_lens};
} }
std::vector<int64_t> out_lens(2);
out_lens.at(0) = lens.at(1);
out_lens.at(1) = 3;
return {shape::int64_type, out_lens};
} }
struct box struct box
...@@ -181,13 +237,13 @@ struct nonmaxsuppression ...@@ -181,13 +237,13 @@ struct nonmaxsuppression
} }
template <class Output, class Boxes, class Scores> template <class Output, class Boxes, class Scores>
void compute_nms(Output output, std::size_t compute_nms(Output output,
Boxes boxes, Boxes boxes,
Scores scores, Scores scores,
const shape& output_shape, const shape& max_output_shape,
std::size_t max_output_boxes_per_class, std::size_t max_output_boxes_per_class,
double iou_threshold, double iou_threshold,
double score_threshold) const double score_threshold) const
{ {
std::fill(output.begin(), output.end(), 0); std::fill(output.begin(), output.end(), 0);
const auto& lens = scores.get_shape().lens(); const auto& lens = scores.get_shape().lens();
...@@ -197,7 +253,7 @@ struct nonmaxsuppression ...@@ -197,7 +253,7 @@ struct nonmaxsuppression
// boxes of a class with NMS applied [score, index] // boxes of a class with NMS applied [score, index]
std::vector<std::pair<double, int64_t>> selected_boxes_inside_class; std::vector<std::pair<double, int64_t>> selected_boxes_inside_class;
std::vector<int64_t> selected_indices; std::vector<int64_t> selected_indices;
selected_boxes_inside_class.reserve(output_shape.elements()); selected_boxes_inside_class.reserve(max_output_shape.elements());
// iterate over batches and classes // iterate over batches and classes
shape comp_s{shape::double_type, {num_batches, num_classes}}; shape comp_s{shape::double_type, {num_batches, num_classes}};
shape_for_each(comp_s, [&](auto idx) { shape_for_each(comp_s, [&](auto idx) {
...@@ -237,11 +293,14 @@ struct nonmaxsuppression ...@@ -237,11 +293,14 @@ struct nonmaxsuppression
} }
}); });
std::copy(selected_indices.begin(), selected_indices.end(), output.begin()); std::copy(selected_indices.begin(), selected_indices.end(), output.begin());
return selected_indices.size() / 3;
} }
argument compute(const shape& output_shape, std::vector<argument> args) const argument compute(const shape& output_shape, std::vector<argument> args) const
{ {
argument result{output_shape}; // make buffer of maximum size
shape max_output_shape = {output_shape.type(), output_shape.max_lens()};
argument result{max_output_shape};
std::size_t max_output_boxes_per_class = std::size_t max_output_boxes_per_class =
(args.size() > 2) ? (args.at(2).at<std::size_t>()) : 0; (args.size() > 2) ? (args.at(2).at<std::size_t>()) : 0;
...@@ -249,22 +308,29 @@ struct nonmaxsuppression ...@@ -249,22 +308,29 @@ struct nonmaxsuppression
{ {
return result; return result;
} }
double iou_threshold = (args.size() > 3) ? (args.at(3).at<double>()) : 0.0f; double iou_threshold = (args.size() > 3) ? (args.at(3).at<double>()) : 0.0f;
double score_threshold = (args.size() > 4) ? (args.at(4).at<double>()) : 0.0f; double score_threshold = (args.size() > 4) ? (args.at(4).at<double>()) : 0.0f;
std::size_t num_selected = 0;
result.visit([&](auto output) { result.visit([&](auto output) {
visit_all(args[0], args[1])([&](auto boxes, auto scores) { visit_all(args[0], args[1])([&](auto boxes, auto scores) {
compute_nms(output, num_selected = compute_nms(output,
boxes, boxes,
scores, scores,
output_shape, max_output_shape,
max_output_boxes_per_class, max_output_boxes_per_class,
iou_threshold, iou_threshold,
score_threshold); score_threshold);
}); });
}); });
if(use_dyn_output)
return result; {
return result.reshape({output_shape.type(), {num_selected, 3}});
}
else
{
return result;
}
} }
}; };
......
...@@ -21,16 +21,24 @@ ...@@ -21,16 +21,24 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE. * THE SOFTWARE.
*/ */
#ifndef MIGRAPHX_GUARD_MIGRAPHX_SUPPORTED_SEGMENTS_HPP
#define MIGRAPHX_GUARD_MIGRAPHX_SUPPORTED_SEGMENTS_HPP
#include <migraphx/target_assignments.hpp> #include <unordered_set>
#include <migraphx/instruction_ref.hpp>
namespace migraphx { namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS { inline namespace MIGRAPHX_INLINE_NS {
void target_assignments::add_assignment(instruction_ref ins, const std::string& target) struct supported_segment
{ {
assignments.emplace(ins, target); std::unordered_set<instruction_ref> instructions;
} float metric;
};
using supported_segments = std::vector<supported_segment>;
} // namespace MIGRAPHX_INLINE_NS } // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx } // namespace migraphx
#endif // MIGRAPHX_GUARD_MIGRAPHX_SUPPORTED_SEGMENTS_HPP
...@@ -37,8 +37,10 @@ ...@@ -37,8 +37,10 @@
#include <migraphx/compile_options.hpp> #include <migraphx/compile_options.hpp>
#include <migraphx/argument.hpp> #include <migraphx/argument.hpp>
#include <migraphx/rank.hpp> #include <migraphx/rank.hpp>
#include <migraphx/module_ref.hpp>
#include <migraphx/support_metric.hpp> #include <migraphx/support_metric.hpp>
#include <migraphx/instruction_ref.hpp> #include <migraphx/instruction_ref.hpp>
#include <migraphx/supported_segments.hpp>
namespace migraphx { namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS { inline namespace MIGRAPHX_INLINE_NS {
...@@ -64,12 +66,12 @@ struct target ...@@ -64,12 +66,12 @@ struct target
*/ */
context get_context() const; context get_context() const;
/** /**
* @brief Check how well an instruction is supported on a target with the given metric * @brief Get the ranges of instructions that are supported on a target
* @param ins Instruction to check if it's supported * @param module Module to check for supported instructions
* @param metric Used to define how the return value should be interpreted * @param metric Used to define how the quality of the support should be measured
* @return The value based on the chosen metric. Negative numbers mean unsupported * @return the supported segments of the graph
*/ */
float is_supported(T&, instruction_ref ins, support_metric m) const; supported_segments target_is_supported(T&, const_module_ref mod, support_metric metric) const;
/** /**
* @brief copy an argument to the current target. * @brief copy an argument to the current target.
* *
...@@ -115,9 +117,9 @@ argument copy_from_target(T&, const argument& arg) ...@@ -115,9 +117,9 @@ argument copy_from_target(T&, const argument& arg)
} }
template <class T> template <class T>
float target_is_supported(T&, instruction_ref, support_metric) supported_segments target_find_supported(T&, const_module_ref, support_metric)
{ {
return 0; return {};
} }
#ifdef TYPE_ERASED_DECLARATION #ifdef TYPE_ERASED_DECLARATION
...@@ -132,7 +134,7 @@ struct target ...@@ -132,7 +134,7 @@ struct target
// //
context get_context() const; context get_context() const;
// (optional) // (optional)
float is_supported(instruction_ref ins, support_metric m) const; supported_segments find_supported(const_module_ref mod, support_metric m) const;
// (optional) // (optional)
argument copy_to(const argument& input) const; argument copy_to(const argument& input) const;
// (optional) // (optional)
...@@ -224,10 +226,10 @@ struct target ...@@ -224,10 +226,10 @@ struct target
return (*this).private_detail_te_get_handle().get_context(); return (*this).private_detail_te_get_handle().get_context();
} }
float is_supported(instruction_ref ins, support_metric m) const supported_segments find_supported(const_module_ref mod, support_metric m) const
{ {
assert((*this).private_detail_te_handle_mem_var); assert((*this).private_detail_te_handle_mem_var);
return (*this).private_detail_te_get_handle().is_supported(ins, m); return (*this).private_detail_te_get_handle().find_supported(mod, m);
} }
argument copy_to(const argument& input) const argument copy_to(const argument& input) const
...@@ -261,33 +263,33 @@ struct target ...@@ -261,33 +263,33 @@ struct target
virtual std::shared_ptr<private_detail_te_handle_base_type> clone() const = 0; virtual std::shared_ptr<private_detail_te_handle_base_type> clone() const = 0;
virtual const std::type_info& type() const = 0; virtual const std::type_info& type() const = 0;
virtual std::string name() const = 0; virtual std::string name() const = 0;
virtual std::vector<pass> get_passes(context& ctx, virtual std::vector<pass> get_passes(context& ctx,
const compile_options& options) const = 0; const compile_options& options) const = 0;
virtual context get_context() const = 0; virtual context get_context() const = 0;
virtual float is_supported(instruction_ref ins, support_metric m) const = 0; virtual supported_segments find_supported(const_module_ref mod, support_metric m) const = 0;
virtual argument copy_to(const argument& input) const = 0; virtual argument copy_to(const argument& input) const = 0;
virtual argument copy_from(const argument& input) const = 0; virtual argument copy_from(const argument& input) const = 0;
virtual argument allocate(const shape& s) const = 0; virtual argument allocate(const shape& s) const = 0;
}; };
template <class T> template <class T>
static auto private_detail_te_default_is_supported(char, static auto private_detail_te_default_find_supported(char,
T&& private_detail_te_self, T&& private_detail_te_self,
instruction_ref ins, const_module_ref mod,
support_metric m) support_metric m)
-> decltype(private_detail_te_self.is_supported(ins, m)) -> decltype(private_detail_te_self.find_supported(mod, m))
{ {
return private_detail_te_self.is_supported(ins, m); return private_detail_te_self.find_supported(mod, m);
} }
template <class T> template <class T>
static float private_detail_te_default_is_supported(float, static supported_segments private_detail_te_default_find_supported(float,
T&& private_detail_te_self, T&& private_detail_te_self,
instruction_ref ins, const_module_ref mod,
support_metric m) support_metric m)
{ {
return target_is_supported(private_detail_te_self, ins, m); return target_find_supported(private_detail_te_self, mod, m);
} }
template <class T> template <class T>
...@@ -372,10 +374,11 @@ struct target ...@@ -372,10 +374,11 @@ struct target
context get_context() const override { return private_detail_te_value.get_context(); } context get_context() const override { return private_detail_te_value.get_context(); }
float is_supported(instruction_ref ins, support_metric m) const override supported_segments find_supported(const_module_ref mod, support_metric m) const override
{ {
return private_detail_te_default_is_supported(char(0), private_detail_te_value, ins, m); return private_detail_te_default_find_supported(
char(0), private_detail_te_value, mod, m);
} }
argument copy_to(const argument& input) const override argument copy_to(const argument& input) const override
......
...@@ -33,10 +33,20 @@ inline namespace MIGRAPHX_INLINE_NS { ...@@ -33,10 +33,20 @@ inline namespace MIGRAPHX_INLINE_NS {
struct target_assignments struct target_assignments
{ {
void add_assignment(instruction_ref ins, const std::string& target); using iterator = std::unordered_map<instruction_ref, std::string>::const_iterator;
using value_type = std::pair<instruction_ref, std::string>;
auto begin() const { return assignments.cbegin(); } auto size() const { return assignments.size(); }
auto end() const { return assignments.cend(); } auto& at(instruction_ref ins) const { return assignments.at(ins); }
auto insert(iterator it, const std::pair<instruction_ref, std::string>& assignment)
{
return assignments.insert(it, assignment);
}
auto find(instruction_ref ins) const { return assignments.find(ins); }
auto begin() const { return assignments.begin(); }
auto end() const { return assignments.end(); }
private: private:
std::unordered_map<instruction_ref, std::string> assignments; std::unordered_map<instruction_ref, std::string> assignments;
......
...@@ -64,5 +64,10 @@ operation make_op_from_value(const std::string& name, const value& v) ...@@ -64,5 +64,10 @@ operation make_op_from_value(const std::string& name, const value& v)
}); });
} }
operation make_json_op(const std::string& name, const std::string& s)
{
return make_op(name, from_json_string(convert_to_json(s)));
}
} // namespace MIGRAPHX_INLINE_NS } // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx } // namespace migraphx
...@@ -788,12 +788,15 @@ static std::string cpp_var_name(const std::string& name) ...@@ -788,12 +788,15 @@ static std::string cpp_var_name(const std::string& name)
static void print_make_op(std::ostream& os, const operation& op) static void print_make_op(std::ostream& os, const operation& op)
{ {
os << "migraphx::make_op(" << enclose_name(op.name());
auto v = op.to_value(); auto v = op.to_value();
if(not v.empty()) if(not v.empty())
{ {
os << ", " os << "migraphx::make_json_op(" << enclose_name(op.name());
<< "migraphx::from_json_string(" << enclose_name(to_json_string(v)) << ")"; os << ", " << enclose_name(to_json_string(v));
}
else
{
os << "migraphx::make_op(" << enclose_name(op.name());
} }
os << ")"; os << ")";
} }
......
...@@ -97,6 +97,7 @@ struct onnx_parser ...@@ -97,6 +97,7 @@ struct onnx_parser
shape::dynamic_dimension default_dyn_dim_value = {1, 1, 0}; shape::dynamic_dimension default_dyn_dim_value = {1, 1, 0};
std::unordered_map<std::string, std::vector<std::size_t>> map_input_dims; std::unordered_map<std::string, std::vector<std::size_t>> map_input_dims;
std::unordered_map<std::string, std::vector<shape::dynamic_dimension>> map_dyn_input_dims; std::unordered_map<std::string, std::vector<shape::dynamic_dimension>> map_dyn_input_dims;
bool use_dyn_output = false;
bool skip_unknown_operators = false; bool skip_unknown_operators = false;
int64_t max_loop_iterations = 10; int64_t max_loop_iterations = 10;
int64_t opset_version = 13; int64_t opset_version = 13;
......
...@@ -60,8 +60,14 @@ program parse_onnx_from(const onnx_options& options, Ts&&... xs) ...@@ -60,8 +60,14 @@ program parse_onnx_from(const onnx_options& options, Ts&&... xs)
{ {
parser.default_dyn_dim_value = options.default_dyn_dim_value; parser.default_dyn_dim_value = options.default_dyn_dim_value;
} }
if(not options.map_input_dims.empty() and not options.map_dyn_input_dims.empty())
{
MIGRAPHX_THROW("PARSE_ONNX_FROM: both map_input_dims and map_dyn_input_dims non-empty, only"
"one should be used");
}
parser.skip_unknown_operators = options.skip_unknown_operators; parser.skip_unknown_operators = options.skip_unknown_operators;
parser.max_loop_iterations = options.max_loop_iterations; parser.max_loop_iterations = options.max_loop_iterations;
parser.use_dyn_output = options.use_dyn_output;
if(options.print_program_on_error) if(options.print_program_on_error)
{ {
...@@ -80,6 +86,7 @@ program parse_onnx_from(const onnx_options& options, Ts&&... xs) ...@@ -80,6 +86,7 @@ program parse_onnx_from(const onnx_options& options, Ts&&... xs)
{ {
parser.parse_from(std::forward<Ts>(xs)...); parser.parse_from(std::forward<Ts>(xs)...);
} }
return std::move(parser.prog); return std::move(parser.prog);
} }
......
...@@ -256,11 +256,6 @@ int64_t onnx_parser::get_opset_version(const onnx::ModelProto& model) ...@@ -256,11 +256,6 @@ int64_t onnx_parser::get_opset_version(const onnx::ModelProto& model)
void onnx_parser::parse_graph(module* mod, const onnx::GraphProto& graph) void onnx_parser::parse_graph(module* mod, const onnx::GraphProto& graph)
{ {
if(not map_input_dims.empty() and not map_dyn_input_dims.empty())
{
MIGRAPHX_THROW("PARSE_GRAPH: both map_input_dims and map_dyn_input_dims non-empty, only"
"one should be used");
}
std::unordered_map<std::string, instruction_ref> mod_insts; std::unordered_map<std::string, instruction_ref> mod_insts;
for(auto&& f : graph.initializer()) for(auto&& f : graph.initializer())
{ {
......
...@@ -58,7 +58,6 @@ struct parse_generic_op : op_parser<parse_generic_op> ...@@ -58,7 +58,6 @@ struct parse_generic_op : op_parser<parse_generic_op>
{"Log", "log"}, {"Log", "log"},
{"LRN", "lrn"}, {"LRN", "lrn"},
{"Neg", "neg"}, {"Neg", "neg"},
{"NonMaxSuppression", "nonmaxsuppression"},
{"Reciprocal", "recip"}, {"Reciprocal", "recip"},
{"Relu", "relu"}, {"Relu", "relu"},
{"Round", "round"}, {"Round", "round"},
...@@ -75,7 +74,7 @@ struct parse_generic_op : op_parser<parse_generic_op> ...@@ -75,7 +74,7 @@ struct parse_generic_op : op_parser<parse_generic_op>
bool needs_contiguous(const std::string& op_name) const bool needs_contiguous(const std::string& op_name) const
{ {
return contains({"flatten", "gather", "nonmaxsuppression", "scatter"}, op_name); return contains({"flatten", "gather", "scatter"}, op_name);
} }
instruction_ref parse(const op_desc& opd, instruction_ref parse(const op_desc& opd,
......
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <migraphx/onnx/op_parser.hpp>
#include <migraphx/ranges.hpp>
#include <migraphx/make_op.hpp>
namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS {
namespace onnx {
struct parse_nonmaxsuppression : op_parser<parse_nonmaxsuppression>
{
std::vector<op_desc> operators() const { return {{"NonMaxSuppression", "nonmaxsuppression"}}; }
instruction_ref parse(const op_desc& opd,
const onnx_parser& parser,
const onnx_parser::node_info& info,
const std::vector<instruction_ref>& args) const
{
auto op = parser.load(opd.op_name, info);
op.from_value({{"use_dyn_output", parser.use_dyn_output}});
return info.add_instruction(op, args);
}
};
} // namespace onnx
} // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include <migraphx/output_iterator.hpp> #include <migraphx/output_iterator.hpp>
#include <migraphx/make_op.hpp> #include <migraphx/make_op.hpp>
#include <migraphx/marker.hpp> #include <migraphx/marker.hpp>
#include <migraphx/supported_segments.hpp>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include <algorithm> #include <algorithm>
...@@ -167,13 +168,37 @@ target_assignments program::get_target_assignments(const std::vector<target>& ta ...@@ -167,13 +168,37 @@ target_assignments program::get_target_assignments(const std::vector<target>& ta
target_assignments p; target_assignments p;
const auto* mod = get_main_module(); const auto* mod = get_main_module();
for(auto it : iterator_for(*mod)) std::vector<std::pair<target, supported_segments>> target_subgraphs;
target_subgraphs.reserve(targets.size());
std::transform(targets.begin(),
targets.end(),
std::back_inserter(target_subgraphs),
[&](const auto& t) { return std::make_pair(t, t.find_supported(mod, m)); });
for(const auto ins : iterator_for(*mod))
{ {
auto t = std::max_element( if(contains(p, ins))
targets.begin(), targets.end(), [it, m](const target& lhs, const target& rhs) { {
return lhs.is_supported(it, m) < rhs.is_supported(it, m); continue;
}); }
p.add_assignment(it, t->name());
for(const auto& [target, subgraph] : target_subgraphs)
{
// can't pass a structured binding into lambda in C++17 so create a variable for it
const auto& t = target;
for(const auto& segment : subgraph)
{
const auto& instructions = segment.instructions;
if(not contains(instructions, ins))
{
continue;
}
std::transform(instructions.begin(),
instructions.end(),
std::inserter(p, p.end()),
[&](auto instr) { return std::make_pair(instr, t.name()); });
}
}
} }
return p; return p;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment