|
|
@@ -163,6 +163,25 @@ Status NodeItem::ResolveDynamicState() { |
|
|
|
|
|
|
|
Status NodeItem::ResolveStaticInputsAndOutputs() { |
|
|
|
for (int i = 0; i < num_inputs; ++i) { |
|
|
|
// Data has unconnected input but set by framework |
|
|
|
if (node_type != DATA) { |
|
|
|
int origin_index = i; |
|
|
|
if (has_optional_inputs) { |
|
|
|
origin_index = input_desc_indices_[i]; |
|
|
|
} |
|
|
|
auto in_data_anchor = node->GetInDataAnchor(origin_index); |
|
|
|
GE_CHECK_NOTNULL(in_data_anchor); |
|
|
|
|
|
|
|
// If no node was connected to the current input anchor |
|
|
|
// increase num_static_input_shapes in case dead wait in ShapeInferenceState::AwaitShapesReady |
|
|
|
if (in_data_anchor->GetPeerOutAnchor() == nullptr || |
|
|
|
in_data_anchor->GetPeerOutAnchor()->GetOwnerNode() == nullptr) { |
|
|
|
num_static_input_shapes++; |
|
|
|
is_input_shape_static_.push_back(true); |
|
|
|
GELOGW("[%s] Peer node of input[%d] is empty", NodeName().c_str(), i); |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
const auto &input_desc = MutableInputDesc(i); |
|
|
|
GE_CHECK_NOTNULL(input_desc); |
|
|
|
if (input_desc->MutableShape().IsUnknownShape()) { |
|
|
|