26 #ifndef MXNET_CPP_OP_MAP_H_ 27 #define MXNET_CPP_OP_MAP_H_ 32 #include "dmlc/logging.h" 48 mx_uint num_symbol_creators = 0;
53 for (
mx_uint i = 0; i < num_symbol_creators; i++) {
55 const char *description;
57 const char **arg_names;
58 const char **arg_type_infos;
59 const char **arg_descriptions;
60 const char *key_var_num_args;
62 &num_args, &arg_names, &arg_type_infos,
63 &arg_descriptions, &key_var_num_args);
65 symbol_creators_[name] = symbol_creators[i];
69 const char **op_names;
70 r = NNListAllOpNames(&num_ops, &op_names);
72 for (nn_uint i = 0; i < num_ops; i++) {
74 r = NNGetOpHandle(op_names[i], &handle);
76 op_handles_[op_names[i]] = handle;
87 if (symbol_creators_.count(name) == 0)
89 return symbol_creators_[name];
99 return op_handles_[name];
103 std::map<std::string, AtomicSymbolCreator> symbol_creators_;
104 std::map<std::string, OpHandle> op_handles_;
110 #endif // MXNET_CPP_OP_MAP_H_ OpHandle GetOpHandle(const std::string &name)
Get an op handle with its name.
Definition: op_map.h:98
MXNET_DLL int MXSymbolListAtomicSymbolCreators(mx_uint *out_size, AtomicSymbolCreator **out_array)
list all the available AtomicSymbolEntry
OpMap instance holds a map of all the symbol creators so we can get symbol creators by name...
Definition: op_map.h:42
namespace of mxnet
Definition: base.h:126
MXNET_DLL int MXSymbolGetAtomicSymbolInfo(AtomicSymbolCreator creator, const char **name, const char **description, mx_uint *num_args, const char ***arg_names, const char ***arg_type_infos, const char ***arg_descriptions, const char **key_var_num_args, const char **return_type DEFAULT(NULL))
Get the detailed information about atomic symbol.
OpMap()
Create an Mxnet instance.
Definition: op_map.h:47
unsigned int mx_uint
manually define unsigned int
Definition: c_api.h:57
void * AtomicSymbolCreator
handle to a function that takes param and creates symbol
Definition: c_api.h:68
AtomicSymbolCreator GetSymbolCreator(const std::string &name)
Get a symbol creator with its name.
Definition: op_map.h:86