mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-21 05:34:18 +08:00
Follows #132753 Pull Request resolved: https://github.com/pytorch/pytorch/pull/132963 Approved by: https://github.com/Skylion007
29 lines
939 B
C++
29 lines
939 B
C++
#include <ATen/core/ivalue.h>
|
|
#include <torch/csrc/jit/mobile/parse_operators.h>
|
|
|
|
namespace torch::jit::mobile {
|
|
|
|
void parseOperators(
|
|
c10::ivalue::TupleElements&& ops_list,
|
|
const uint64_t& module_load_options,
|
|
mobile::Function* function) {
|
|
for (auto& op : std::move(ops_list)) {
|
|
auto op_item = std::move(*std::move(op).toTuple()).elements();
|
|
TORCH_CHECK(
|
|
op_item.size() >= 2,
|
|
"There should be either two parts (name and overload name), ",
|
|
"or three parts (name, overload name and number of specified args) ",
|
|
"for an operator");
|
|
std::optional<int> num_args;
|
|
if (op_item.size() > 2) {
|
|
num_args = op_item[2].toInt();
|
|
}
|
|
function->append_operator(
|
|
op_item[0].toStringRef(), op_item[1].toStringRef(), num_args);
|
|
}
|
|
function->initialize_operators(
|
|
(module_load_options & MobileModuleLoadOptions::OPERATOR_CHECK));
|
|
}
|
|
|
|
} // namespace torch::jit::mobile
|