MCPcopy Create free account
hub / github.com/ROCm/AMDMIGraphX / parse_inputs

Function parse_inputs

src/onnx/onnx_parser.cpp:351–388  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

349}
350
351static std::unordered_map<std::string, instruction_ref>
352parse_inputs(const onnx_parser& parser,
353 module* mod,
354 const onnx::GraphProto& graph,
355 std::unordered_map<std::string, instruction_ref> mod_insts)
356{
357 for(auto&& input : graph.input())
358 {
359 const std::string& name = input.name();
360 // input not in initializer_data, so it is a real input
361 if(not contains(mod_insts, name))
362 {
363 if(contains(parser.instructions, name))
364 {
365 MIGRAPHX_THROW("module \"" + mod->name() + "\" has parameter name \"" + name +
366 "\" existing in parent graph!");
367 }
368
369 shape s;
370 if(parser.map_input_dims.count(name) > 0)
371 {
372 std::vector<std::size_t> dims = parser.map_input_dims.at(name);
373 s = parser.parse_type(input.type(), dims);
374 }
375 else if(parser.map_dyn_input_dims.count(name) > 0)
376 {
377 shape::type_t shape_type = get_type(input.type().tensor_type().elem_type());
378 s = shape_from_dyn_dims(shape_type, parser.map_dyn_input_dims.at(name));
379 }
380 else
381 {
382 s = parser.parse_type(input.type());
383 }
384 mod_insts[name] = mod->add_parameter(name, s);
385 }
386 }
387 return mod_insts;
388}
389
390struct node_maps
391{

Callers 1

parse_graphMethod · 0.85

Calls 9

containsFunction · 0.85
shape_from_dyn_dimsFunction · 0.85
atMethod · 0.80
add_parameterMethod · 0.80
get_typeFunction · 0.70
inputMethod · 0.45
nameMethod · 0.45
parse_typeMethod · 0.45
typeMethod · 0.45

Tested by

no test coverage detected