MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / infer_output_attrs_fallible

Function infer_output_attrs_fallible

imperative/src/impl/subgraph_detail.cpp:34–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32}
33
34std::tuple<SmallVector<LogicalTensorDesc>, bool> infer_output_attrs_fallible(
35 const OpDef& def, const SmallVector<LogicalTensorDesc>& inputs) {
36 auto subgraph = def.trait()->make_forward_graph(def, inputs);
37 bool all_validated = true;
38 auto apply_functor = [&](const std::shared_ptr<OpDef>& op,
39 const SmallVector<LogicalTensorDesc>& inputs,
40 size_t nr_outputs) {
41 auto [outputs, validated] = OpDef::infer_output_attrs_fallible(*op, inputs);
42 all_validated = all_validated && validated;
43 return outputs;
44 };
45 auto const_functor = [&](const TensorPtr& value) {
46 return LogicalTensorDesc{
47 value->layout(), value->comp_node(),
48 value->get_value().proxy_to_default_cpu()};
49 };
50 auto outputs =
51 subgraph.apply<LogicalTensorDesc>(inputs, apply_functor, const_functor);
52 return {outputs, all_validated};
53}
54
55SmallVector<TensorPtr> apply_on_physical_tensor(
56 const OpDef& def, SmallVector<TensorPtr> inputs,

Callers 1

Calls 6

make_forward_graphMethod · 0.80
traitMethod · 0.45
layoutMethod · 0.45
comp_nodeMethod · 0.45
proxy_to_default_cpuMethod · 0.45
get_valueMethod · 0.45

Tested by

no test coverage detected