@@ -93,8 +93,9 @@ Expected<TensorBuffer> CompiledModel::CreateInputOutputBuffer(
9393
9494 LITERT_ASSIGN_OR_RETURN (Subgraph subgraph, model_.Subgraph (signature.Key ()));
9595
96- Expected<Tensor> tensor_expected =
97- is_input ? subgraph.Input (tensor_name) : subgraph.Output (tensor_name);
96+ Expected<Tensor> tensor_expected = is_input
97+ ? signature.InputTensor (tensor_name)
98+ : signature.OutputTensor (tensor_name);
9899 Expected<TensorBufferRequirements> buffer_requirements_expected =
99100 is_input ? GetInputBufferRequirements (signature_index, tensor_name)
100101 : GetOutputBufferRequirements (signature_index, tensor_name);
@@ -111,8 +112,6 @@ Expected<std::vector<TensorBuffer>> CompiledModel::CreateInputOutputBuffers(
111112 size_t signature_index, bool is_input) const {
112113 LITERT_ASSIGN_OR_RETURN (const Signature& signature,
113114 model_.GetSignature (signature_index));
114- LITERT_ASSIGN_OR_RETURN (const Subgraph subgraph,
115- model_.Subgraph (signature.Key ()));
116115 std::vector<TensorBuffer> tensor_buffers;
117116 std::vector<absl::string_view> tensor_names;
118117
@@ -176,24 +175,22 @@ Expected<void> CompiledModel::RunMapHelper(
176175 return Unexpected (kLiteRtStatusErrorNotFound ,
177176 " Failed to get signature_index" );
178177 }
179- auto subgraph = model_.Subgraph (signature_key);
180- if (!subgraph) {
181- return Unexpected (kLiteRtStatusErrorNotFound , " Failed to get subgraph" );
182- }
183- return RunMapWithIndexHelper (*signature_index, *subgraph, input_map,
178+ LITERT_ASSIGN_OR_RETURN (Signature signature,
179+ model_.GetSignature (*signature_index));
180+ return RunMapWithIndexHelper (*signature_index, signature, input_map,
184181 output_map, async);
185182}
186183
187184Expected<void > CompiledModel::RunMapWithIndexHelper (
188- size_t signature_index, const Subgraph& subgraph ,
185+ size_t signature_index, const Signature& signature ,
189186 const absl::flat_hash_map<absl::string_view, TensorBuffer>& input_map,
190187 const absl::flat_hash_map<absl::string_view, TensorBuffer>& output_map,
191188 bool & async) const {
192- auto input_tensors = subgraph. Inputs ();
193- size_t num_inputs = input_tensors .size ();
189+ auto input_names = signature. InputNames ();
190+ size_t num_inputs = input_names .size ();
194191 auto input_buffers_ptr = std::make_unique<LiteRtTensorBuffer[]>(num_inputs);
195192 for (int i = 0 ; i < num_inputs; ++i) {
196- absl::string_view input_name = input_tensors [i]. Name () ;
193+ absl::string_view input_name = input_names [i];
197194 auto it = input_map.find (input_name);
198195 // if the input is not provided in the input map, we set it to nullptr.
199196 if (it == input_map.end ()) {
@@ -202,11 +199,11 @@ Expected<void> CompiledModel::RunMapWithIndexHelper(
202199 }
203200 input_buffers_ptr[i] = it->second .Get ();
204201 }
205- auto output_tensors = subgraph. Outputs ();
206- size_t num_outputs = output_tensors .size ();
202+ auto output_names = signature. OutputNames ();
203+ size_t num_outputs = output_names .size ();
207204 auto output_buffers_ptr = std::make_unique<LiteRtTensorBuffer[]>(num_outputs);
208205 for (int i = 0 ; i < num_outputs; ++i) {
209- absl::string_view output_name = output_tensors [i]. Name () ;
206+ absl::string_view output_name = output_names [i];
210207 auto it = output_map.find (output_name);
211208 if (it == output_map.end ()) {
212209 return Unexpected (kLiteRtStatusErrorNotFound ,
0 commit comments