target_link_libraries(exo_tflite PUBLIC loco)
target_link_libraries(exo_tflite PRIVATE stdex)
target_link_libraries(exo_tflite PRIVATE pepper_strcast)
+target_link_libraries(exo_tflite PRIVATE locoex_customop)
+
# Let's apply nncc common compile options
#
# NOTE This will enable strict compilation (warnings as error).
return idx;
}
+uint32_t SerializedModelData::registerCustomOpcode(const std::string &custom_op)
+{
+ tflite::BuiltinOperator custom_code = tflite::BuiltinOperator_CUSTOM;
+ auto idx = registerBuiltinOpcode(custom_code);
+ _custom_operator_codes.emplace(OpCode{custom_code}, custom_op);
+ return idx;
+}
+
tflite::Padding getOpPadding(const loco::Pad<2> *pad)
{
// VALID padding
SerializedModelData(const SerializedModelData &) = delete;
std::unordered_map<OpCode, uint32_t> _operator_codes;
+ std::unordered_map<OpCode, std::string> _custom_operator_codes;
std::vector<flatbuffers::Offset<tflite::Operator>> _operators;
std::vector<flatbuffers::Offset<tflite::Tensor>> _tensors;
std::vector<flatbuffers::Offset<tflite::Buffer>> _buffers;
* @return idx of opcode in table of opcodes (see schema)
*/
uint32_t registerBuiltinOpcode(tflite::BuiltinOperator builtin_code);
+ uint32_t registerCustomOpcode(const std::string &custom_op);
};
template <typename Permutation> inline bool isNHWC(Permutation *perm);