Commit 917efb94 authored by Pruthvi's avatar Pruthvi Committed by Scott Cyphers

Pruthvi/fix input matrix fusion (#2381)

* -   check to verify if the data_slices shares the same weights

* add the serialized graph

* - explicitly fuse the data slices, so all the parameter partitioned by slices are in contigous memory location
- fixes all the failing test cases
parent 5f38fd1a
......@@ -306,15 +306,41 @@ bool runtime::cpu::pass::CPURnnMatFusion::run_on_function(std::shared_ptr<Functi
NodeVector params = p.first;
NodeVector& op_nodes = p.second;
auto data_node = params.at(Type::DATA);
// we will sort the captured Add(Dot(X, W) + B) as per the the slice ordering of X
// this will simplify the replace_node logic
auto compare_slices = [&](const std::shared_ptr<Node> node1,
const std::shared_ptr<Node> node2) {
const auto node1_slice =
std::static_pointer_cast<op::Slice>(op_seg_map[node1].at(Type::DATA));
const auto node2_slice =
std::static_pointer_cast<op::Slice>(op_seg_map[node2].at(Type::DATA));
return (node1_slice->get_lower_bounds() < node2_slice->get_lower_bounds() &&
node1_slice->get_upper_bounds() < node2_slice->get_upper_bounds());
};
std::sort(op_nodes.begin(), op_nodes.end(), compare_slices);
// we fuse all the data slices captured in the pattern to make bigger GEMM call
auto fuse_data_slices = [&]() {
NodeVector data_slices;
for (auto& op : op_nodes)
{
auto data_node = op_seg_map.at(op).at(Type::DATA);
data_slices.push_back(data_node);
}
return std::make_shared<op::Concat>(data_slices, 0);
};
auto data_node = op_nodes.size() > 1 ? fuse_data_slices() : params.at(Type::DATA);
auto weights_node = params.at(Type::WEIGHTS);
auto bias_node = params.at(Type::BIAS);
auto& data_shape = data_node->get_shape();
const auto& data_shape = data_node->get_shape();
// construct new op nodes
auto data_order = ngraph::get_default_order(data_node->get_shape());
auto data_reshape_node = std::make_shared<op::Reshape>(
data_node, data_order, Shape{data_shape[0] * data_shape[1], data_shape[2]});
auto data_reshape_node =
std::make_shared<op::Reshape>(data_node,
AxisVector{0, 1, 2},
Shape{data_shape[0] * data_shape[1], data_shape[2]});
auto old_weights_reshape_node = op_seg_map.at(op_nodes.at(0)).at(Type::WEIGHTS);
auto weights_reshape_node =
......@@ -327,30 +353,16 @@ bool runtime::cpu::pass::CPURnnMatFusion::run_on_function(std::shared_ptr<Functi
auto add_node = std::make_shared<op::Add>(dot_node, bias_broadcast_node);
const auto& add_shape = add_node->get_shape();
// we will sort the captured Add(Dot(X, W) + B) as per the the slice ordering of X
// this will simplify the replace_node logic
auto compare_slices = [&](const std::shared_ptr<Node> node1,
const std::shared_ptr<Node> node2) {
const auto node1_slice =
std::static_pointer_cast<op::Slice>(op_seg_map[node1].at(Type::DATA));
const auto node2_slice =
std::static_pointer_cast<op::Slice>(op_seg_map[node2].at(Type::DATA));
return (node1_slice->get_lower_bounds() < node2_slice->get_lower_bounds() &&
node1_slice->get_upper_bounds() < node2_slice->get_upper_bounds());
};
std::sort(op_nodes.begin(), op_nodes.end(), compare_slices);
size_t num_timesteps = op_nodes.size();
size_t batch_size = add_shape[0] / num_timesteps;
size_t feature_size = add_shape[1];
// create a slice for each user of the dot op matching the original dot op's output
for (size_t i = 0, start_index = 0; i < op_nodes.size(); i++, start_index += batch_size)
{
// calculate the lower and upper bounds for the slice of the new fused node
// ((<x0 | x1..|xt>*W)+b), which will used to replace the nodes matched in the pattern
const Coordinate lower_bounds{start_index, 0};
const Coordinate upper_bounds{start_index + batch_size, add_shape[1]};
const Coordinate upper_bounds{start_index + batch_size, feature_size};
auto slice_node = std::make_shared<op::Slice>(add_node, lower_bounds, upper_bounds);
......
......@@ -3450,3 +3450,26 @@ TEST(cpu_fusion, rnn_input_fusion_inter_vs_cpu)
EXPECT_TRUE(test::all_close(cpu_results.at(i), int_results.at(i), 1.0e-4f, 1.0e-4f));
}
}
TEST(cpu_fusion, validate_fuse_gru_inputs)
{
const std::string file_name("mxnet/gru_debug.json");
auto cpu_func = make_function_from_file(file_name);
auto int_func = make_function_from_file(file_name);
test::Uniform<float> rng(-10.0f, 10.0f);
vector<vector<float>> args;
for (shared_ptr<op::Parameter> param : int_func->get_parameters())
{
vector<float> tensor_val(shape_size(param->get_shape()));
rng.initialize(tensor_val);
args.push_back(tensor_val);
}
auto int_results = execute(int_func, args, "INTERPRETER");
auto cpu_results = execute(cpu_func, args, "CPU");
for (size_t i = 0; i < cpu_results.size(); i++)
{
EXPECT_TRUE(test::all_close(cpu_results.at(i), int_results.at(i), 1.0e-4f, 1.0e-4f));
}
}
[{"name":"Function_12","ops":[{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_1114","op":"Parameter","outputs":["Parameter_1114_0"],"shape":[30]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_1113","op":"Parameter","outputs":["Parameter_1113_0"],"shape":[30,10]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_1105","op":"Parameter","outputs":["Parameter_1105_0"],"shape":[30]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_1104","op":"Parameter","outputs":["Parameter_1104_0"],"shape":[30,20]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_993","op":"Parameter","outputs":["Parameter_993_0"],"shape":[30]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_992","op":"Parameter","outputs":["Parameter_992_0"],"shape":[30,10]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_984","op":"Parameter","outputs":["Parameter_984_0"],"shape":[30]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_983","op":"Parameter","outputs":["Parameter_983_0"],"shape":[30,20]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_917","op":"Parameter","outputs":["Parameter_917_0"],"shape":[30]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_916","op":"Parameter","outputs":["Parameter_916_0"],"shape":[30,10]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_901","op":"Parameter","outputs":["Parameter_901_0"],"shape":[30]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_900","op":"Parameter","outputs":["Parameter_900_0"],"shape":[30,10]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_867","op":"Parameter","outputs":["Parameter_867_0"],"shape":[30]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_866","op":"Parameter","outputs":["Parameter_866_0"],"shape":[30,10]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_858","op":"Parameter","outputs":["Parameter_858_0"],"shape":[30]},{"cacheable":true,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_857","op":"Parameter","outputs":["Parameter_857_0"],"shape":[30,10]},{"cacheable":false,"control_deps":[],"element_type":"float","inputs":[],"name":"Parameter_854","op":"Parameter","outputs":["Parameter_854_0"],"shape":[2,2,10]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1111","op":"Constant","outputs":["Constant_1111_0"],"shape":[],"value":["0"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_914","op":"Constant","outputs":["Constant_914_0"],"shape":[],"value":["0"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_924","op":"Constant","outputs":["Constant_924_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_937","op":"Constant","outputs":["Constant_937_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_930","op":"Constant","outputs":["Constant_930_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_864","op":"Constant","outputs":["Constant_864_0"],"shape":[],"value":["0"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_874","op":"Constant","outputs":["Constant_874_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_887","op":"Constant","outputs":["Constant_887_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_880","op":"Constant","outputs":["Constant_880_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1038","op":"Constant","outputs":["Constant_1038_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1051","op":"Constant","outputs":["Constant_1051_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1044","op":"Constant","outputs":["Constant_1044_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1121","op":"Constant","outputs":["Constant_1121_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1134","op":"Constant","outputs":["Constant_1134_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1127","op":"Constant","outputs":["Constant_1127_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_956","op":"Constant","outputs":["Constant_956_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_969","op":"Constant","outputs":["Constant_969_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_962","op":"Constant","outputs":["Constant_962_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1159","op":"Constant","outputs":["Constant_1159_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1172","op":"Constant","outputs":["Constant_1172_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1165","op":"Constant","outputs":["Constant_1165_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_990","op":"Constant","outputs":["Constant_990_0"],"shape":[],"value":["0"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1000","op":"Constant","outputs":["Constant_1000_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1013","op":"Constant","outputs":["Constant_1013_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1006","op":"Constant","outputs":["Constant_1006_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1076","op":"Constant","outputs":["Constant_1076_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1089","op":"Constant","outputs":["Constant_1089_0"],"shape":[],"value":["1"]},{"control_deps":[],"element_type":"float","inputs":[],"name":"Constant_1082","op":"Constant","outputs":["Constant_1082_0"],"shape":[],"value":["1"]},{"axes":[0],"control_deps":[],"inputs":["Parameter_1114"],"name":"Broadcast_1117","op":"Broadcast","outputs":["Broadcast_1117_0"],"shape":[2,30]},{"axes":[0],"control_deps":[],"inputs":["Parameter_1114"],"name":"Broadcast_1155","op":"Broadcast","outputs":["Broadcast_1155_0"],"shape":[2,30]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_1113"],"name":"Reshape_1115","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_1115_0"]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_1113"],"name":"Reshape_1153","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_1153_0"]},{"axes":[0],"control_deps":[],"inputs":["Parameter_1105"],"name":"Broadcast_1108","op":"Broadcast","outputs":["Broadcast_1108_0"],"shape":[2,30]},{"axes":[0],"control_deps":[],"inputs":["Parameter_1105"],"name":"Broadcast_1150","op":"Broadcast","outputs":["Broadcast_1150_0"],"shape":[2,30]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_1104"],"name":"Reshape_1106","op":"Reshape","output_shape":[20,30],"outputs":["Reshape_1106_0"]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_1104"],"name":"Reshape_1148","op":"Reshape","output_shape":[20,30],"outputs":["Reshape_1148_0"]},{"axes":[0],"control_deps":[],"inputs":["Parameter_993"],"name":"Broadcast_996","op":"Broadcast","outputs":["Broadcast_996_0"],"shape":[2,30]},{"axes":[0],"control_deps":[],"inputs":["Parameter_993"],"name":"Broadcast_1072","op":"Broadcast","outputs":["Broadcast_1072_0"],"shape":[2,30]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_992"],"name":"Reshape_994","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_994_0"]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_992"],"name":"Reshape_1070","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_1070_0"]},{"axes":[0],"control_deps":[],"inputs":["Parameter_984"],"name":"Broadcast_987","op":"Broadcast","outputs":["Broadcast_987_0"],"shape":[2,30]},{"axes":[0],"control_deps":[],"inputs":["Parameter_984"],"name":"Broadcast_1067","op":"Broadcast","outputs":["Broadcast_1067_0"],"shape":[2,30]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_983"],"name":"Reshape_985","op":"Reshape","output_shape":[20,30],"outputs":["Reshape_985_0"]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_983"],"name":"Reshape_1065","op":"Reshape","output_shape":[20,30],"outputs":["Reshape_1065_0"]},{"axes":[0],"control_deps":[],"inputs":["Parameter_917"],"name":"Broadcast_920","op":"Broadcast","outputs":["Broadcast_920_0"],"shape":[2,30]},{"axes":[0],"control_deps":[],"inputs":["Parameter_917"],"name":"Broadcast_952","op":"Broadcast","outputs":["Broadcast_952_0"],"shape":[2,30]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_916"],"name":"Reshape_918","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_918_0"]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_916"],"name":"Reshape_950","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_950_0"]},{"axes":[0],"control_deps":[],"inputs":["Parameter_901"],"name":"Broadcast_904","op":"Broadcast","outputs":["Broadcast_904_0"],"shape":[2,30]},{"axes":[0],"control_deps":[],"inputs":["Parameter_901"],"name":"Broadcast_911","op":"Broadcast","outputs":["Broadcast_911_0"],"shape":[2,30]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_900"],"name":"Reshape_902","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_902_0"]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_900"],"name":"Reshape_909","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_909_0"]},{"axes":[0],"control_deps":[],"inputs":["Parameter_867"],"name":"Broadcast_870","op":"Broadcast","outputs":["Broadcast_870_0"],"shape":[2,30]},{"axes":[0],"control_deps":[],"inputs":["Parameter_867"],"name":"Broadcast_1034","op":"Broadcast","outputs":["Broadcast_1034_0"],"shape":[2,30]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_866"],"name":"Reshape_868","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_868_0"]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_866"],"name":"Reshape_1032","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_1032_0"]},{"axes":[0],"control_deps":[],"inputs":["Parameter_858"],"name":"Broadcast_861","op":"Broadcast","outputs":["Broadcast_861_0"],"shape":[2,30]},{"axes":[0],"control_deps":[],"inputs":["Parameter_858"],"name":"Broadcast_1029","op":"Broadcast","outputs":["Broadcast_1029_0"],"shape":[2,30]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_857"],"name":"Reshape_859","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_859_0"]},{"control_deps":[],"input_order":[1,0],"inputs":["Parameter_857"],"name":"Reshape_1027","op":"Reshape","output_shape":[10,30],"outputs":["Reshape_1027_0"]},{"control_deps":[],"inputs":["Parameter_854"],"lower_bounds":[0,0,0],"name":"Slice_855","op":"Slice","outputs":["Slice_855_0"],"strides":[1,1,1],"upper_bounds":[2,1,10]},{"control_deps":[],"inputs":["Parameter_854"],"lower_bounds":[0,1,0],"name":"Slice_907","op":"Slice","outputs":["Slice_907_0"],"strides":[1,1,1],"upper_bounds":[2,2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1111"],"name":"Broadcast_1112","op":"Broadcast","outputs":["Broadcast_1112_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_914"],"name":"Broadcast_915","op":"Broadcast","outputs":["Broadcast_915_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_924"],"name":"Broadcast_925","op":"Broadcast","outputs":["Broadcast_925_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_937"],"name":"Broadcast_938","op":"Broadcast","outputs":["Broadcast_938_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_930"],"name":"Broadcast_931","op":"Broadcast","outputs":["Broadcast_931_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_864"],"name":"Broadcast_865","op":"Broadcast","outputs":["Broadcast_865_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_874"],"name":"Broadcast_875","op":"Broadcast","outputs":["Broadcast_875_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_887"],"name":"Broadcast_888","op":"Broadcast","outputs":["Broadcast_888_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_880"],"name":"Broadcast_881","op":"Broadcast","outputs":["Broadcast_881_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1038"],"name":"Broadcast_1039","op":"Broadcast","outputs":["Broadcast_1039_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1051"],"name":"Broadcast_1052","op":"Broadcast","outputs":["Broadcast_1052_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1044"],"name":"Broadcast_1045","op":"Broadcast","outputs":["Broadcast_1045_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1121"],"name":"Broadcast_1122","op":"Broadcast","outputs":["Broadcast_1122_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1134"],"name":"Broadcast_1135","op":"Broadcast","outputs":["Broadcast_1135_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1127"],"name":"Broadcast_1128","op":"Broadcast","outputs":["Broadcast_1128_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_956"],"name":"Broadcast_957","op":"Broadcast","outputs":["Broadcast_957_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_969"],"name":"Broadcast_970","op":"Broadcast","outputs":["Broadcast_970_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_962"],"name":"Broadcast_963","op":"Broadcast","outputs":["Broadcast_963_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1159"],"name":"Broadcast_1160","op":"Broadcast","outputs":["Broadcast_1160_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1172"],"name":"Broadcast_1173","op":"Broadcast","outputs":["Broadcast_1173_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1165"],"name":"Broadcast_1166","op":"Broadcast","outputs":["Broadcast_1166_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_990"],"name":"Broadcast_991","op":"Broadcast","outputs":["Broadcast_991_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1000"],"name":"Broadcast_1001","op":"Broadcast","outputs":["Broadcast_1001_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1013"],"name":"Broadcast_1014","op":"Broadcast","outputs":["Broadcast_1014_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1006"],"name":"Broadcast_1007","op":"Broadcast","outputs":["Broadcast_1007_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1076"],"name":"Broadcast_1077","op":"Broadcast","outputs":["Broadcast_1077_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1089"],"name":"Broadcast_1090","op":"Broadcast","outputs":["Broadcast_1090_0"],"shape":[2,10]},{"axes":[0,1],"control_deps":[],"inputs":["Constant_1082"],"name":"Broadcast_1083","op":"Broadcast","outputs":["Broadcast_1083_0"],"shape":[2,10]},{"control_deps":[],"input_order":[0,1,2],"inputs":["Slice_855"],"name":"Reshape_856","op":"Reshape","output_shape":[2,10],"outputs":["Reshape_856_0"]},{"control_deps":[],"input_order":[0,1,2],"inputs":["Slice_907"],"name":"Reshape_908","op":"Reshape","output_shape":[2,10],"outputs":["Reshape_908_0"]},{"control_deps":[],"inputs":["Broadcast_1112","Reshape_1115"],"name":"Dot_1116","op":"Dot","outputs":["Dot_1116_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Broadcast_915","Reshape_918"],"name":"Dot_919","op":"Dot","outputs":["Dot_919_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Broadcast_865","Reshape_868"],"name":"Dot_869","op":"Dot","outputs":["Dot_869_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Broadcast_991","Reshape_994"],"name":"Dot_995","op":"Dot","outputs":["Dot_995_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Reshape_856","Reshape_859"],"name":"Dot_860","op":"Dot","outputs":["Dot_860_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Reshape_856","Reshape_902"],"name":"Dot_903","op":"Dot","outputs":["Dot_903_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Reshape_908","Reshape_909"],"name":"Dot_910","op":"Dot","outputs":["Dot_910_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Reshape_908","Reshape_1027"],"name":"Dot_1028","op":"Dot","outputs":["Dot_1028_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Dot_1116","Broadcast_1117"],"name":"Add_1118","op":"Add","outputs":["Add_1118_0"]},{"control_deps":[],"inputs":["Dot_919","Broadcast_920"],"name":"Add_921","op":"Add","outputs":["Add_921_0"]},{"control_deps":[],"inputs":["Dot_869","Broadcast_870"],"name":"Add_871","op":"Add","outputs":["Add_871_0"]},{"control_deps":[],"inputs":["Dot_995","Broadcast_996"],"name":"Add_997","op":"Add","outputs":["Add_997_0"]},{"control_deps":[],"inputs":["Dot_860","Broadcast_861"],"name":"Add_862","op":"Add","outputs":["Add_862_0"]},{"control_deps":[],"inputs":["Dot_903","Broadcast_904"],"name":"Add_905","op":"Add","outputs":["Add_905_0"]},{"control_deps":[],"inputs":["Dot_910","Broadcast_911"],"name":"Add_912","op":"Add","outputs":["Add_912_0"]},{"control_deps":[],"inputs":["Dot_1028","Broadcast_1029"],"name":"Add_1030","op":"Add","outputs":["Add_1030_0"]},{"control_deps":[],"inputs":["Add_1118"],"lower_bounds":[0,10],"name":"Slice_1119","op":"Slice","outputs":["Slice_1119_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_1118"],"lower_bounds":[0,0],"name":"Slice_1132","op":"Slice","outputs":["Slice_1132_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_1118"],"lower_bounds":[0,20],"name":"Slice_1140","op":"Slice","outputs":["Slice_1140_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_921"],"lower_bounds":[0,10],"name":"Slice_922","op":"Slice","outputs":["Slice_922_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_921"],"lower_bounds":[0,0],"name":"Slice_935","op":"Slice","outputs":["Slice_935_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_921"],"lower_bounds":[0,20],"name":"Slice_943","op":"Slice","outputs":["Slice_943_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_871"],"lower_bounds":[0,10],"name":"Slice_872","op":"Slice","outputs":["Slice_872_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_871"],"lower_bounds":[0,0],"name":"Slice_885","op":"Slice","outputs":["Slice_885_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_871"],"lower_bounds":[0,20],"name":"Slice_893","op":"Slice","outputs":["Slice_893_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_997"],"lower_bounds":[0,10],"name":"Slice_998","op":"Slice","outputs":["Slice_998_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_997"],"lower_bounds":[0,0],"name":"Slice_1011","op":"Slice","outputs":["Slice_1011_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_997"],"lower_bounds":[0,20],"name":"Slice_1019","op":"Slice","outputs":["Slice_1019_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_862"],"lower_bounds":[0,10],"name":"Slice_863","op":"Slice","outputs":["Slice_863_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_862"],"lower_bounds":[0,20],"name":"Slice_883","op":"Slice","outputs":["Slice_883_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_862"],"lower_bounds":[0,0],"name":"Slice_884","op":"Slice","outputs":["Slice_884_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_905"],"lower_bounds":[0,10],"name":"Slice_906","op":"Slice","outputs":["Slice_906_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_905"],"lower_bounds":[0,20],"name":"Slice_965","op":"Slice","outputs":["Slice_965_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_905"],"lower_bounds":[0,0],"name":"Slice_966","op":"Slice","outputs":["Slice_966_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_912"],"lower_bounds":[0,10],"name":"Slice_913","op":"Slice","outputs":["Slice_913_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_912"],"lower_bounds":[0,20],"name":"Slice_933","op":"Slice","outputs":["Slice_933_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_912"],"lower_bounds":[0,0],"name":"Slice_934","op":"Slice","outputs":["Slice_934_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_1030"],"lower_bounds":[0,10],"name":"Slice_1031","op":"Slice","outputs":["Slice_1031_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_1030"],"lower_bounds":[0,20],"name":"Slice_1047","op":"Slice","outputs":["Slice_1047_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_1030"],"lower_bounds":[0,0],"name":"Slice_1048","op":"Slice","outputs":["Slice_1048_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Slice_863","Slice_872"],"name":"Add_873","op":"Add","outputs":["Add_873_0"]},{"control_deps":[],"inputs":["Slice_884","Slice_885"],"name":"Add_886","op":"Add","outputs":["Add_886_0"]},{"control_deps":[],"inputs":["Slice_913","Slice_922"],"name":"Add_923","op":"Add","outputs":["Add_923_0"]},{"control_deps":[],"inputs":["Slice_934","Slice_935"],"name":"Add_936","op":"Add","outputs":["Add_936_0"]},{"control_deps":[],"inputs":["Add_873"],"name":"Negative_876","op":"Negative","outputs":["Negative_876_0"]},{"control_deps":[],"inputs":["Add_886"],"name":"Negative_889","op":"Negative","outputs":["Negative_889_0"]},{"control_deps":[],"inputs":["Add_923"],"name":"Negative_926","op":"Negative","outputs":["Negative_926_0"]},{"control_deps":[],"inputs":["Add_936"],"name":"Negative_939","op":"Negative","outputs":["Negative_939_0"]},{"control_deps":[],"inputs":["Negative_876"],"name":"Exp_877","op":"Exp","outputs":["Exp_877_0"]},{"control_deps":[],"inputs":["Negative_889"],"name":"Exp_890","op":"Exp","outputs":["Exp_890_0"]},{"control_deps":[],"inputs":["Negative_926"],"name":"Exp_927","op":"Exp","outputs":["Exp_927_0"]},{"control_deps":[],"inputs":["Negative_939"],"name":"Exp_940","op":"Exp","outputs":["Exp_940_0"]},{"control_deps":[],"inputs":["Broadcast_875","Exp_877"],"name":"Add_878","op":"Add","outputs":["Add_878_0"]},{"control_deps":[],"inputs":["Broadcast_888","Exp_890"],"name":"Add_891","op":"Add","outputs":["Add_891_0"]},{"control_deps":[],"inputs":["Broadcast_925","Exp_927"],"name":"Add_928","op":"Add","outputs":["Add_928_0"]},{"control_deps":[],"inputs":["Broadcast_938","Exp_940"],"name":"Add_941","op":"Add","outputs":["Add_941_0"]},{"control_deps":[],"inputs":["Broadcast_875","Add_878"],"name":"Divide_879","op":"Divide","outputs":["Divide_879_0"]},{"control_deps":[],"inputs":["Broadcast_888","Add_891"],"name":"Divide_892","op":"Divide","outputs":["Divide_892_0"]},{"control_deps":[],"inputs":["Broadcast_925","Add_928"],"name":"Divide_929","op":"Divide","outputs":["Divide_929_0"]},{"control_deps":[],"inputs":["Broadcast_938","Add_941"],"name":"Divide_942","op":"Divide","outputs":["Divide_942_0"]},{"control_deps":[],"inputs":["Broadcast_881","Divide_879"],"name":"Subtract_882","op":"Subtract","outputs":["Subtract_882_0"]},{"control_deps":[],"inputs":["Divide_879","Broadcast_865"],"name":"Multiply_898","op":"Multiply","outputs":["Multiply_898_0"]},{"control_deps":[],"inputs":["Divide_892","Slice_893"],"name":"Multiply_894","op":"Multiply","outputs":["Multiply_894_0"]},{"control_deps":[],"inputs":["Broadcast_931","Divide_929"],"name":"Subtract_932","op":"Subtract","outputs":["Subtract_932_0"]},{"control_deps":[],"inputs":["Divide_929","Broadcast_915"],"name":"Multiply_948","op":"Multiply","outputs":["Multiply_948_0"]},{"control_deps":[],"inputs":["Divide_942","Slice_943"],"name":"Multiply_944","op":"Multiply","outputs":["Multiply_944_0"]},{"control_deps":[],"inputs":["Slice_883","Multiply_894"],"name":"Add_895","op":"Add","outputs":["Add_895_0"]},{"control_deps":[],"inputs":["Slice_933","Multiply_944"],"name":"Add_945","op":"Add","outputs":["Add_945_0"]},{"control_deps":[],"inputs":["Add_895"],"name":"Tanh_896","op":"Tanh","outputs":["Tanh_896_0"]},{"control_deps":[],"inputs":["Add_945"],"name":"Tanh_946","op":"Tanh","outputs":["Tanh_946_0"]},{"control_deps":[],"inputs":["Subtract_882","Tanh_896"],"name":"Multiply_897","op":"Multiply","outputs":["Multiply_897_0"]},{"control_deps":[],"inputs":["Subtract_932","Tanh_946"],"name":"Multiply_947","op":"Multiply","outputs":["Multiply_947_0"]},{"control_deps":[],"inputs":["Multiply_897","Multiply_898"],"name":"Add_899","op":"Add","outputs":["Add_899_0"]},{"control_deps":[],"inputs":["Multiply_947","Multiply_948"],"name":"Add_949","op":"Add","outputs":["Add_949_0"]},{"control_deps":[],"inputs":["Add_899","Reshape_1032"],"name":"Dot_1033","op":"Dot","outputs":["Dot_1033_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Add_949","Reshape_950"],"name":"Dot_951","op":"Dot","outputs":["Dot_951_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Dot_1033","Broadcast_1034"],"name":"Add_1035","op":"Add","outputs":["Add_1035_0"]},{"control_deps":[],"inputs":["Dot_951","Broadcast_952"],"name":"Add_953","op":"Add","outputs":["Add_953_0"]},{"control_deps":[],"inputs":["Add_1035"],"lower_bounds":[0,10],"name":"Slice_1036","op":"Slice","outputs":["Slice_1036_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_1035"],"lower_bounds":[0,0],"name":"Slice_1049","op":"Slice","outputs":["Slice_1049_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_1035"],"lower_bounds":[0,20],"name":"Slice_1057","op":"Slice","outputs":["Slice_1057_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_953"],"lower_bounds":[0,10],"name":"Slice_954","op":"Slice","outputs":["Slice_954_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_953"],"lower_bounds":[0,0],"name":"Slice_967","op":"Slice","outputs":["Slice_967_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_953"],"lower_bounds":[0,20],"name":"Slice_975","op":"Slice","outputs":["Slice_975_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Slice_1031","Slice_1036"],"name":"Add_1037","op":"Add","outputs":["Add_1037_0"]},{"control_deps":[],"inputs":["Slice_1048","Slice_1049"],"name":"Add_1050","op":"Add","outputs":["Add_1050_0"]},{"control_deps":[],"inputs":["Slice_906","Slice_954"],"name":"Add_955","op":"Add","outputs":["Add_955_0"]},{"control_deps":[],"inputs":["Slice_966","Slice_967"],"name":"Add_968","op":"Add","outputs":["Add_968_0"]},{"control_deps":[],"inputs":["Add_1037"],"name":"Negative_1040","op":"Negative","outputs":["Negative_1040_0"]},{"control_deps":[],"inputs":["Add_1050"],"name":"Negative_1053","op":"Negative","outputs":["Negative_1053_0"]},{"control_deps":[],"inputs":["Add_955"],"name":"Negative_958","op":"Negative","outputs":["Negative_958_0"]},{"control_deps":[],"inputs":["Add_968"],"name":"Negative_971","op":"Negative","outputs":["Negative_971_0"]},{"control_deps":[],"inputs":["Negative_1040"],"name":"Exp_1041","op":"Exp","outputs":["Exp_1041_0"]},{"control_deps":[],"inputs":["Negative_1053"],"name":"Exp_1054","op":"Exp","outputs":["Exp_1054_0"]},{"control_deps":[],"inputs":["Negative_958"],"name":"Exp_959","op":"Exp","outputs":["Exp_959_0"]},{"control_deps":[],"inputs":["Negative_971"],"name":"Exp_972","op":"Exp","outputs":["Exp_972_0"]},{"control_deps":[],"inputs":["Broadcast_1039","Exp_1041"],"name":"Add_1042","op":"Add","outputs":["Add_1042_0"]},{"control_deps":[],"inputs":["Broadcast_1052","Exp_1054"],"name":"Add_1055","op":"Add","outputs":["Add_1055_0"]},{"control_deps":[],"inputs":["Broadcast_957","Exp_959"],"name":"Add_960","op":"Add","outputs":["Add_960_0"]},{"control_deps":[],"inputs":["Broadcast_970","Exp_972"],"name":"Add_973","op":"Add","outputs":["Add_973_0"]},{"control_deps":[],"inputs":["Broadcast_1039","Add_1042"],"name":"Divide_1043","op":"Divide","outputs":["Divide_1043_0"]},{"control_deps":[],"inputs":["Broadcast_1052","Add_1055"],"name":"Divide_1056","op":"Divide","outputs":["Divide_1056_0"]},{"control_deps":[],"inputs":["Broadcast_957","Add_960"],"name":"Divide_961","op":"Divide","outputs":["Divide_961_0"]},{"control_deps":[],"inputs":["Broadcast_970","Add_973"],"name":"Divide_974","op":"Divide","outputs":["Divide_974_0"]},{"control_deps":[],"inputs":["Broadcast_1045","Divide_1043"],"name":"Subtract_1046","op":"Subtract","outputs":["Subtract_1046_0"]},{"control_deps":[],"inputs":["Divide_1043","Add_899"],"name":"Multiply_1062","op":"Multiply","outputs":["Multiply_1062_0"]},{"control_deps":[],"inputs":["Divide_1056","Slice_1057"],"name":"Multiply_1058","op":"Multiply","outputs":["Multiply_1058_0"]},{"control_deps":[],"inputs":["Broadcast_963","Divide_961"],"name":"Subtract_964","op":"Subtract","outputs":["Subtract_964_0"]},{"control_deps":[],"inputs":["Divide_961","Add_949"],"name":"Multiply_980","op":"Multiply","outputs":["Multiply_980_0"]},{"control_deps":[],"inputs":["Divide_974","Slice_975"],"name":"Multiply_976","op":"Multiply","outputs":["Multiply_976_0"]},{"control_deps":[],"inputs":["Slice_1047","Multiply_1058"],"name":"Add_1059","op":"Add","outputs":["Add_1059_0"]},{"control_deps":[],"inputs":["Slice_965","Multiply_976"],"name":"Add_977","op":"Add","outputs":["Add_977_0"]},{"control_deps":[],"inputs":["Add_1059"],"name":"Tanh_1060","op":"Tanh","outputs":["Tanh_1060_0"]},{"control_deps":[],"inputs":["Add_977"],"name":"Tanh_978","op":"Tanh","outputs":["Tanh_978_0"]},{"control_deps":[],"inputs":["Subtract_1046","Tanh_1060"],"name":"Multiply_1061","op":"Multiply","outputs":["Multiply_1061_0"]},{"control_deps":[],"inputs":["Subtract_964","Tanh_978"],"name":"Multiply_979","op":"Multiply","outputs":["Multiply_979_0"]},{"control_deps":[],"inputs":["Multiply_1061","Multiply_1062"],"name":"Add_1063","op":"Add","outputs":["Add_1063_0"]},{"control_deps":[],"inputs":["Multiply_979","Multiply_980"],"name":"Add_981","op":"Add","outputs":["Add_981_0"]},{"axis":1,"control_deps":[],"inputs":["Add_1063","Add_949"],"name":"Concat_1064","op":"Concat","outputs":["Concat_1064_0"]},{"axis":1,"control_deps":[],"inputs":["Add_899","Add_981"],"name":"Concat_982","op":"Concat","outputs":["Concat_982_0"]},{"control_deps":[],"inputs":["Concat_1064","Reshape_1065"],"name":"Dot_1066","op":"Dot","outputs":["Dot_1066_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Concat_1064","Reshape_1106"],"name":"Dot_1107","op":"Dot","outputs":["Dot_1107_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Concat_982","Reshape_985"],"name":"Dot_986","op":"Dot","outputs":["Dot_986_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Concat_982","Reshape_1148"],"name":"Dot_1149","op":"Dot","outputs":["Dot_1149_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Dot_1066","Broadcast_1067"],"name":"Add_1068","op":"Add","outputs":["Add_1068_0"]},{"control_deps":[],"inputs":["Dot_1107","Broadcast_1108"],"name":"Add_1109","op":"Add","outputs":["Add_1109_0"]},{"control_deps":[],"inputs":["Dot_986","Broadcast_987"],"name":"Add_988","op":"Add","outputs":["Add_988_0"]},{"control_deps":[],"inputs":["Dot_1149","Broadcast_1150"],"name":"Add_1151","op":"Add","outputs":["Add_1151_0"]},{"control_deps":[],"inputs":["Add_1068"],"lower_bounds":[0,10],"name":"Slice_1069","op":"Slice","outputs":["Slice_1069_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_1068"],"lower_bounds":[0,20],"name":"Slice_1085","op":"Slice","outputs":["Slice_1085_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_1068"],"lower_bounds":[0,0],"name":"Slice_1086","op":"Slice","outputs":["Slice_1086_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_1109"],"lower_bounds":[0,10],"name":"Slice_1110","op":"Slice","outputs":["Slice_1110_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_1109"],"lower_bounds":[0,20],"name":"Slice_1130","op":"Slice","outputs":["Slice_1130_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_1109"],"lower_bounds":[0,0],"name":"Slice_1131","op":"Slice","outputs":["Slice_1131_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_988"],"lower_bounds":[0,10],"name":"Slice_989","op":"Slice","outputs":["Slice_989_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_988"],"lower_bounds":[0,20],"name":"Slice_1009","op":"Slice","outputs":["Slice_1009_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_988"],"lower_bounds":[0,0],"name":"Slice_1010","op":"Slice","outputs":["Slice_1010_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_1151"],"lower_bounds":[0,10],"name":"Slice_1152","op":"Slice","outputs":["Slice_1152_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_1151"],"lower_bounds":[0,20],"name":"Slice_1168","op":"Slice","outputs":["Slice_1168_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_1151"],"lower_bounds":[0,0],"name":"Slice_1169","op":"Slice","outputs":["Slice_1169_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Slice_1110","Slice_1119"],"name":"Add_1120","op":"Add","outputs":["Add_1120_0"]},{"control_deps":[],"inputs":["Slice_1131","Slice_1132"],"name":"Add_1133","op":"Add","outputs":["Add_1133_0"]},{"control_deps":[],"inputs":["Slice_989","Slice_998"],"name":"Add_999","op":"Add","outputs":["Add_999_0"]},{"control_deps":[],"inputs":["Slice_1010","Slice_1011"],"name":"Add_1012","op":"Add","outputs":["Add_1012_0"]},{"control_deps":[],"inputs":["Add_1120"],"name":"Negative_1123","op":"Negative","outputs":["Negative_1123_0"]},{"control_deps":[],"inputs":["Add_1133"],"name":"Negative_1136","op":"Negative","outputs":["Negative_1136_0"]},{"control_deps":[],"inputs":["Add_999"],"name":"Negative_1002","op":"Negative","outputs":["Negative_1002_0"]},{"control_deps":[],"inputs":["Add_1012"],"name":"Negative_1015","op":"Negative","outputs":["Negative_1015_0"]},{"control_deps":[],"inputs":["Negative_1123"],"name":"Exp_1124","op":"Exp","outputs":["Exp_1124_0"]},{"control_deps":[],"inputs":["Negative_1136"],"name":"Exp_1137","op":"Exp","outputs":["Exp_1137_0"]},{"control_deps":[],"inputs":["Negative_1002"],"name":"Exp_1003","op":"Exp","outputs":["Exp_1003_0"]},{"control_deps":[],"inputs":["Negative_1015"],"name":"Exp_1016","op":"Exp","outputs":["Exp_1016_0"]},{"control_deps":[],"inputs":["Broadcast_1122","Exp_1124"],"name":"Add_1125","op":"Add","outputs":["Add_1125_0"]},{"control_deps":[],"inputs":["Broadcast_1135","Exp_1137"],"name":"Add_1138","op":"Add","outputs":["Add_1138_0"]},{"control_deps":[],"inputs":["Broadcast_1001","Exp_1003"],"name":"Add_1004","op":"Add","outputs":["Add_1004_0"]},{"control_deps":[],"inputs":["Broadcast_1014","Exp_1016"],"name":"Add_1017","op":"Add","outputs":["Add_1017_0"]},{"control_deps":[],"inputs":["Broadcast_1122","Add_1125"],"name":"Divide_1126","op":"Divide","outputs":["Divide_1126_0"]},{"control_deps":[],"inputs":["Broadcast_1135","Add_1138"],"name":"Divide_1139","op":"Divide","outputs":["Divide_1139_0"]},{"control_deps":[],"inputs":["Broadcast_1001","Add_1004"],"name":"Divide_1005","op":"Divide","outputs":["Divide_1005_0"]},{"control_deps":[],"inputs":["Broadcast_1014","Add_1017"],"name":"Divide_1018","op":"Divide","outputs":["Divide_1018_0"]},{"control_deps":[],"inputs":["Broadcast_1128","Divide_1126"],"name":"Subtract_1129","op":"Subtract","outputs":["Subtract_1129_0"]},{"control_deps":[],"inputs":["Divide_1126","Broadcast_1112"],"name":"Multiply_1145","op":"Multiply","outputs":["Multiply_1145_0"]},{"control_deps":[],"inputs":["Divide_1139","Slice_1140"],"name":"Multiply_1141","op":"Multiply","outputs":["Multiply_1141_0"]},{"control_deps":[],"inputs":["Broadcast_1007","Divide_1005"],"name":"Subtract_1008","op":"Subtract","outputs":["Subtract_1008_0"]},{"control_deps":[],"inputs":["Divide_1005","Broadcast_991"],"name":"Multiply_1024","op":"Multiply","outputs":["Multiply_1024_0"]},{"control_deps":[],"inputs":["Divide_1018","Slice_1019"],"name":"Multiply_1020","op":"Multiply","outputs":["Multiply_1020_0"]},{"control_deps":[],"inputs":["Slice_1130","Multiply_1141"],"name":"Add_1142","op":"Add","outputs":["Add_1142_0"]},{"control_deps":[],"inputs":["Slice_1009","Multiply_1020"],"name":"Add_1021","op":"Add","outputs":["Add_1021_0"]},{"control_deps":[],"inputs":["Add_1142"],"name":"Tanh_1143","op":"Tanh","outputs":["Tanh_1143_0"]},{"control_deps":[],"inputs":["Add_1021"],"name":"Tanh_1022","op":"Tanh","outputs":["Tanh_1022_0"]},{"control_deps":[],"inputs":["Subtract_1129","Tanh_1143"],"name":"Multiply_1144","op":"Multiply","outputs":["Multiply_1144_0"]},{"control_deps":[],"inputs":["Subtract_1008","Tanh_1022"],"name":"Multiply_1023","op":"Multiply","outputs":["Multiply_1023_0"]},{"control_deps":[],"inputs":["Multiply_1144","Multiply_1145"],"name":"Add_1146","op":"Add","outputs":["Add_1146_0"]},{"control_deps":[],"inputs":["Multiply_1023","Multiply_1024"],"name":"Add_1025","op":"Add","outputs":["Add_1025_0"]},{"control_deps":[],"input_order":[0,1],"inputs":["Add_1146"],"name":"Reshape_1147","op":"Reshape","output_shape":[2,1,10],"outputs":["Reshape_1147_0"]},{"control_deps":[],"inputs":["Add_1146","Reshape_1153"],"name":"Dot_1154","op":"Dot","outputs":["Dot_1154_0"],"reduction_axes_count":1},{"control_deps":[],"input_order":[0,1],"inputs":["Add_1025"],"name":"Reshape_1026","op":"Reshape","output_shape":[2,1,10],"outputs":["Reshape_1026_0"]},{"control_deps":[],"inputs":["Add_1025","Reshape_1070"],"name":"Dot_1071","op":"Dot","outputs":["Dot_1071_0"],"reduction_axes_count":1},{"control_deps":[],"inputs":["Dot_1154","Broadcast_1155"],"name":"Add_1156","op":"Add","outputs":["Add_1156_0"]},{"control_deps":[],"inputs":["Dot_1071","Broadcast_1072"],"name":"Add_1073","op":"Add","outputs":["Add_1073_0"]},{"control_deps":[],"inputs":["Add_1156"],"lower_bounds":[0,10],"name":"Slice_1157","op":"Slice","outputs":["Slice_1157_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_1156"],"lower_bounds":[0,0],"name":"Slice_1170","op":"Slice","outputs":["Slice_1170_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_1156"],"lower_bounds":[0,20],"name":"Slice_1178","op":"Slice","outputs":["Slice_1178_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Add_1073"],"lower_bounds":[0,10],"name":"Slice_1074","op":"Slice","outputs":["Slice_1074_0"],"strides":[1,1],"upper_bounds":[2,20]},{"control_deps":[],"inputs":["Add_1073"],"lower_bounds":[0,0],"name":"Slice_1087","op":"Slice","outputs":["Slice_1087_0"],"strides":[1,1],"upper_bounds":[2,10]},{"control_deps":[],"inputs":["Add_1073"],"lower_bounds":[0,20],"name":"Slice_1095","op":"Slice","outputs":["Slice_1095_0"],"strides":[1,1],"upper_bounds":[2,30]},{"control_deps":[],"inputs":["Slice_1152","Slice_1157"],"name":"Add_1158","op":"Add","outputs":["Add_1158_0"]},{"control_deps":[],"inputs":["Slice_1169","Slice_1170"],"name":"Add_1171","op":"Add","outputs":["Add_1171_0"]},{"control_deps":[],"inputs":["Slice_1069","Slice_1074"],"name":"Add_1075","op":"Add","outputs":["Add_1075_0"]},{"control_deps":[],"inputs":["Slice_1086","Slice_1087"],"name":"Add_1088","op":"Add","outputs":["Add_1088_0"]},{"control_deps":[],"inputs":["Add_1158"],"name":"Negative_1161","op":"Negative","outputs":["Negative_1161_0"]},{"control_deps":[],"inputs":["Add_1171"],"name":"Negative_1174","op":"Negative","outputs":["Negative_1174_0"]},{"control_deps":[],"inputs":["Add_1075"],"name":"Negative_1078","op":"Negative","outputs":["Negative_1078_0"]},{"control_deps":[],"inputs":["Add_1088"],"name":"Negative_1091","op":"Negative","outputs":["Negative_1091_0"]},{"control_deps":[],"inputs":["Negative_1161"],"name":"Exp_1162","op":"Exp","outputs":["Exp_1162_0"]},{"control_deps":[],"inputs":["Negative_1174"],"name":"Exp_1175","op":"Exp","outputs":["Exp_1175_0"]},{"control_deps":[],"inputs":["Negative_1078"],"name":"Exp_1079","op":"Exp","outputs":["Exp_1079_0"]},{"control_deps":[],"inputs":["Negative_1091"],"name":"Exp_1092","op":"Exp","outputs":["Exp_1092_0"]},{"control_deps":[],"inputs":["Broadcast_1160","Exp_1162"],"name":"Add_1163","op":"Add","outputs":["Add_1163_0"]},{"control_deps":[],"inputs":["Broadcast_1173","Exp_1175"],"name":"Add_1176","op":"Add","outputs":["Add_1176_0"]},{"control_deps":[],"inputs":["Broadcast_1077","Exp_1079"],"name":"Add_1080","op":"Add","outputs":["Add_1080_0"]},{"control_deps":[],"inputs":["Broadcast_1090","Exp_1092"],"name":"Add_1093","op":"Add","outputs":["Add_1093_0"]},{"control_deps":[],"inputs":["Broadcast_1160","Add_1163"],"name":"Divide_1164","op":"Divide","outputs":["Divide_1164_0"]},{"control_deps":[],"inputs":["Broadcast_1173","Add_1176"],"name":"Divide_1177","op":"Divide","outputs":["Divide_1177_0"]},{"control_deps":[],"inputs":["Broadcast_1077","Add_1080"],"name":"Divide_1081","op":"Divide","outputs":["Divide_1081_0"]},{"control_deps":[],"inputs":["Broadcast_1090","Add_1093"],"name":"Divide_1094","op":"Divide","outputs":["Divide_1094_0"]},{"control_deps":[],"inputs":["Broadcast_1166","Divide_1164"],"name":"Subtract_1167","op":"Subtract","outputs":["Subtract_1167_0"]},{"control_deps":[],"inputs":["Divide_1164","Add_1146"],"name":"Multiply_1183","op":"Multiply","outputs":["Multiply_1183_0"]},{"control_deps":[],"inputs":["Divide_1177","Slice_1178"],"name":"Multiply_1179","op":"Multiply","outputs":["Multiply_1179_0"]},{"control_deps":[],"inputs":["Broadcast_1083","Divide_1081"],"name":"Subtract_1084","op":"Subtract","outputs":["Subtract_1084_0"]},{"control_deps":[],"inputs":["Divide_1081","Add_1025"],"name":"Multiply_1100","op":"Multiply","outputs":["Multiply_1100_0"]},{"control_deps":[],"inputs":["Divide_1094","Slice_1095"],"name":"Multiply_1096","op":"Multiply","outputs":["Multiply_1096_0"]},{"control_deps":[],"inputs":["Slice_1168","Multiply_1179"],"name":"Add_1180","op":"Add","outputs":["Add_1180_0"]},{"control_deps":[],"inputs":["Slice_1085","Multiply_1096"],"name":"Add_1097","op":"Add","outputs":["Add_1097_0"]},{"control_deps":[],"inputs":["Add_1180"],"name":"Tanh_1181","op":"Tanh","outputs":["Tanh_1181_0"]},{"control_deps":[],"inputs":["Add_1097"],"name":"Tanh_1098","op":"Tanh","outputs":["Tanh_1098_0"]},{"control_deps":[],"inputs":["Subtract_1167","Tanh_1181"],"name":"Multiply_1182","op":"Multiply","outputs":["Multiply_1182_0"]},{"control_deps":[],"inputs":["Subtract_1084","Tanh_1098"],"name":"Multiply_1099","op":"Multiply","outputs":["Multiply_1099_0"]},{"control_deps":[],"inputs":["Multiply_1182","Multiply_1183"],"name":"Add_1184","op":"Add","outputs":["Add_1184_0"]},{"control_deps":[],"inputs":["Multiply_1099","Multiply_1100"],"name":"Add_1101","op":"Add","outputs":["Add_1101_0"]},{"control_deps":[],"input_order":[0,1],"inputs":["Add_1184"],"name":"Reshape_1185","op":"Reshape","output_shape":[2,1,10],"outputs":["Reshape_1185_0"]},{"control_deps":[],"input_order":[0,1],"inputs":["Add_1101"],"name":"Reshape_1102","op":"Reshape","output_shape":[2,1,10],"outputs":["Reshape_1102_0"]},{"axis":1,"control_deps":[],"inputs":["Reshape_1147","Reshape_1185"],"name":"Concat_1186","op":"Concat","outputs":["Concat_1186_0"]},{"axis":1,"control_deps":[],"inputs":["Reshape_1026","Reshape_1102"],"name":"Concat_1103","op":"Concat","outputs":["Concat_1103_0"]},{"control_deps":[],"inputs":["Concat_1186"],"name":"Reverse_1187","op":"Reverse","outputs":["Reverse_1187_0"],"reversed_axes":[1]},{"axis":2,"control_deps":[],"inputs":["Concat_1103","Reverse_1187"],"name":"Concat_1188","op":"Concat","outputs":["Concat_1188_0"]},{"control_deps":[],"inputs":["Concat_1188"],"name":"Result_1189","op":"Result","outputs":["Result_1189_0"]}],"parameters":["Parameter_854","Parameter_857","Parameter_858","Parameter_866","Parameter_867","Parameter_900","Parameter_901","Parameter_916","Parameter_917","Parameter_983","Parameter_984","Parameter_992","Parameter_993","Parameter_1104","Parameter_1105","Parameter_1113","Parameter_1114"],"result":["Result_1189"]}]
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