0

In c++ mx:

#include <mxnet-cpp/MxNetCpp.h>

namespace mx {
    using namespace mxnet::cpp;
}

int main(int argc, char *argv[])
{
    auto data = mx::Symbol::Variable("input");
    mx::Symbol conv_w("conv1_w"), conv_b("conv1_b");
    auto a = mx::Convolution("conv1", data, conv_w, conv_b, mx::Shape(5, 5), 20);
    return 0;
}

It is linked against: libmxnet.a libnnvm.a libdmlc.a

On execution it fails at:

inline Operator::Operator(const std::string &operator_name) {
  handle_ = op_map()->GetSymbolCreator(operator_name);
  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;
  >>>>> MXSymbolGetAtomicSymbolInfo(handle_,
      &name,
      &description,
      &num_args,
      &arg_names,
      &arg_type_infos,
      &arg_descriptions,
      &key_var_num_args);
  for (mx_uint i = 0; i < num_args; ++i) {
    arg_names_.push_back(arg_names[i]);
  }
}

Do I need to run an initializer somewhere first to register Operators? I cannot find documentation.

iamacomputer
  • 518
  • 3
  • 14

0 Answers0