2 #ifndef _NNDEPLOY_IR_IR_H_
3 #define _NNDEPLOY_IR_IR_H_
19 #ifdef ENABLE_NNDEPLOY_SAFETENSORS_CPP
20 #include "safetensors.hh"
40 std::shared_ptr<base::Param> op_param);
42 std::initializer_list<std::string> inputs,
43 std::initializer_list<std::string> outputs);
45 std::initializer_list<std::string> inputs,
46 std::initializer_list<std::string> outputs,
47 std::shared_ptr<base::Param> op_param);
49 std::vector<std::string> &inputs, std::vector<std::string> &outputs);
51 std::vector<std::string> &inputs, std::vector<std::string> &outputs,
52 std::shared_ptr<base::Param> op_param);
58 rapidjson::Document::AllocatorType &allocator);
92 rapidjson::Document::AllocatorType &allocator);
118 rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator);
123 rapidjson::Value &json,
const std::vector<ValueDesc> &input);
125 const std::string &json_str,
const std::vector<ValueDesc> &input);
127 const std::string &path,
const std::vector<ValueDesc> &input);
129 #ifdef ENABLE_NNDEPLOY_SAFETENSORS_CPP
131 base::Status serializeWeightsToSafetensorsImpl(safetensors::safetensors_t &st,
132 bool serialize_buffer =
false);
134 std::shared_ptr<safetensors::safetensors_t> &serialize_st_ptr);
136 const std::string &weight_file_path);
139 std::shared_ptr<safetensors::safetensors_t> &st_ptr);
148 std::vector<std::shared_ptr<ValueDesc>>
inputs_;
156 std::vector<std::shared_ptr<ValueDesc>>
values_;
base::Status deserializeStructureFromJsonStr(const std::string &json_str, const std::vector< ValueDesc > &input)
std::vector< std::shared_ptr< ValueDesc > > values_
base::Status serializeStructureToJson(const std::string &path)
std::unordered_map< std::string, std::string > metadata_
base::Status serializeStructureToJson(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator)
base::Status dump(std::ostream &stream)
base::Status deserializeStructureFromJson(const std::string &path, const std::vector< ValueDesc > &input)
base::Status serializeStructureToJsonStr(std::string &json_str)
std::map< std::string, device::Tensor * > weights_
std::vector< std::shared_ptr< ValueDesc > > inputs_
base::Status deserializeStructureFromJson(rapidjson::Value &json, const std::vector< ValueDesc > &input)
std::vector< std::shared_ptr< ValueDesc > > outputs_
std::vector< std::shared_ptr< OpDesc > > op_descs_
std::vector< std::string > outputs_
std::vector< std::string > inputs_
std::shared_ptr< base::Param > op_param_
base::Status deserialize(rapidjson::Value &json)
OpDesc(const std::string &name, OpType op_type, std::shared_ptr< base::Param > op_param)
OpDesc(const std::string &name, OpType op_type, std::initializer_list< std::string > inputs, std::initializer_list< std::string > outputs, std::shared_ptr< base::Param > op_param)
base::Status serialize(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator)
OpDesc(const std::string &name, OpType op_type, std::initializer_list< std::string > inputs, std::initializer_list< std::string > outputs)
OpDesc(const std::string &name, OpType op_type, std::vector< std::string > &inputs, std::vector< std::string > &outputs)
OpDesc(const std::string &name, OpType op_type)
OpDesc(const std::string &name, OpType op_type, std::vector< std::string > &inputs, std::vector< std::string > &outputs, std::shared_ptr< base::Param > op_param)
ValueDesc(const std::string &name)
ValueDesc(const std::string &name, base::DataType data_type, base::IntVector shape)
ValueDesc(const std::string &name, base::DataType data_type)
base::DataType data_type_
base::Status deserialize(rapidjson::Value &json)
base::Status serialize(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator)
#define NNDEPLOY_CC_API
api
std::vector< int > IntVector
base::Status shape(device::Tensor *input, std::shared_ptr< ir::ShapeParam > param, device::Tensor *output)