| 92 | } |
| 93 | |
| 94 | int create_generic_node(graph_t graph, const char* node_name, const char* input_name) |
| 95 | { |
| 96 | node_t generic_node = create_graph_node(graph, node_name, "Generic"); |
| 97 | |
| 98 | if(generic_node == nullptr) |
| 99 | { |
| 100 | std::cerr << "create node failed. errno " << get_tengine_errno() << "\n"; |
| 101 | return -1; |
| 102 | } |
| 103 | |
| 104 | tensor_t input_tensor = get_graph_tensor(graph, input_name); |
| 105 | |
| 106 | if(input_tensor == nullptr) |
| 107 | { |
| 108 | std::cout << "ERRNO: " << get_tengine_errno() << "\n"; |
| 109 | return -1; |
| 110 | } |
| 111 | |
| 112 | set_node_input_tensor(generic_node, 0, input_tensor); |
| 113 | |
| 114 | release_graph_tensor(input_tensor); |
| 115 | |
| 116 | /* output */ |
| 117 | tensor_t output_tensor = create_graph_tensor(graph, node_name, TENGINE_DT_FP32); |
| 118 | |
| 119 | set_node_output_tensor(generic_node, 0, output_tensor, TENSOR_TYPE_VAR); |
| 120 | |
| 121 | release_graph_tensor(output_tensor); |
| 122 | |
| 123 | add_node_attr(generic_node, "alpha", typeid(float).name(), sizeof(float)); |
| 124 | add_node_attr(generic_node, "beta", typeid(float).name(), sizeof(float)); |
| 125 | |
| 126 | int input_num = 1; |
| 127 | int output_num = 2; |
| 128 | |
| 129 | const char* op_name = "MUL"; |
| 130 | |
| 131 | if(set_node_attr_pointer(generic_node, "op_name", &op_name) < 0) |
| 132 | { |
| 133 | std::cerr << "set node attr failed\n"; |
| 134 | } |
| 135 | set_node_attr_int(generic_node, "max_input_num", &input_num); |
| 136 | set_node_attr_int(generic_node, "max_output_num", &output_num); |
| 137 | |
| 138 | float val = 2; |
| 139 | set_node_attr_float(generic_node, "alpha", &val); |
| 140 | val = 10000; |
| 141 | set_node_attr_float(generic_node, "beta", &val); |
| 142 | |
| 143 | release_graph_node(generic_node); |
| 144 | |
| 145 | return 0; |
| 146 | } |
| 147 | |
| 148 | graph_t create_test_graph(int c, int h, int w) |
| 149 | { |
no test coverage detected