EXPECT_NO_THROW(realizeAndEqual(r, before, after));
}
+ { // source has single output, all are referred multiple times
+ std::vector<LayerRepresentation> before = {
+ {"split", {"name=a", "input_shape=1:1:1:2", "axis=3"}},
+ {"fully_connected", {"name=b", "input_layers=a"}},
+ {"fully_connected", {"name=c", "input_layers=a(0)"}},
+ {"fully_connected", {"name=d", "input_layers=a(1)"}},
+ {"fully_connected", {"name=e", "input_layers=a(1)"}},
+ };
+ std::vector<LayerRepresentation> after = {
+ {"split", {"name=a", "input_shape=1:1:1:2", "axis=3"}},
+ {"multiout", {"name=a/generated_out_0", "input_layers=a(0)"}},
+ {"multiout", {"name=a/generated_out_1", "input_layers=a(1)"}},
+ {"fully_connected", {"name=b", "input_layers=a/generated_out_0(0)"}},
+ {"fully_connected", {"name=c", "input_layers=a/generated_out_0(1)"}},
+ {"fully_connected", {"name=d", "input_layers=a/generated_out_1(0)"}},
+ {"fully_connected", {"name=e", "input_layers=a/generated_out_1(1)"}},
+ };
+
+ MultioutRealizer r;
+ EXPECT_NO_THROW(realizeAndEqual(r, before, after));
+ }
+
{ // source has single output, some are referred multiple times
std::vector<LayerRepresentation> before = {
{"split", {"name=a", "input_shape=1:1:1:2", "axis=3"}},