diff --git a/tools/onnx/onnx2ncnn.cpp b/tools/onnx/onnx2ncnn.cpp index 975eb6451..2478f2ab8 100644 --- a/tools/onnx/onnx2ncnn.cpp +++ b/tools/onnx/onnx2ncnn.cpp @@ -1213,6 +1213,10 @@ int main(int argc, char** argv) { fprintf(pp, "%-16s", "Softmax"); } + else if (op == "Split") + { + fprintf(pp, "%-16s", "Slice"); + } else if (op == "Sqrt") { fprintf(pp, "%-16s", "UnaryOp"); @@ -2023,6 +2027,21 @@ int main(int argc, char** argv) fprintf(pp, " 0=%d", axis-1); fprintf(pp, " 1=1"); } + else if (op == "Split") + { + int axis = get_node_attr_i(node, "axis", 0); + std::vector split = get_node_attr_ai(node, "split"); + if (axis < 1 || split.size() < 2) + fprintf(stderr, "Unsupported split attributes !\n"); + + fprintf(pp, " -23300=%d", output_size); + for (int i=0; i< split.size() - 1; i++) + { + fprintf(pp, ",%d", split[i]); + } + fprintf(pp, ",-233"); + fprintf(pp, " 1=%d", axis - 1); + } else if (op == "Sqrt") { int op_type = 5;