self._graph = graph
self._in_nodes_dict = get_in_nodes(self._node_list, self._target_ops, input_shapes.keys())
+ if len(self._in_nodes_dict) == 0:
+ raise RuntimeError("Could not find any input nodes with whose "
+ "operator is one of %s" % self._target_ops)
self._out_nodes_dict = get_out_nodes(self._in_nodes_dict)
self._fetch_cfg()
self._opt_out_op = OPT_OUT_OP
Additional arguments
"""
if key is not None:
- self._get_input(key).copyfrom(value)
+ v = self._get_input(key)
+ if v is None:
+ raise RuntimeError("Could not find '%s' in graph's inputs" % key)
+ v.copyfrom(value)
if params:
# upload big arrays first to avoid memory issue in rpc mode
CHECK(stream->Read(&import_tree_row_ptr));
CHECK(stream->Read(&import_tree_child_indices));
} else {
- std::string fkey = "runtime.module.loadbinary_" + tkey;
+ std::string loadkey = "runtime.module.loadbinary_";
+ std::string fkey = loadkey + tkey;
const PackedFunc* f = Registry::Get(fkey);
- CHECK(f != nullptr) << "Loader of " << tkey << "(" << fkey << ") is not presented.";
+ if (f == nullptr) {
+ std::string loaders = "";
+ for (auto name : Registry::ListNames()) {
+ if (name.rfind(loadkey, 0) == 0) {
+ if (loaders.size() > 0) {
+ loaders += ", ";
+ }
+ loaders += name.substr(loadkey.size());
+ }
+ }
+ CHECK(f != nullptr)
+ << "Binary was created using " << tkey
+ << " but a loader of that name is not registered. Available loaders are " << loaders
+ << ". Perhaps you need to recompile with this runtime enabled.";
+ }
Module m = (*f)(static_cast<void*>(stream));
modules.emplace_back(m);
}
for (uint64_t i = 0; i < num_imports; ++i) {
std::string tkey;
CHECK(strm->Read(&tkey));
- std::string fkey = "runtime.module.loadbinary_" + tkey;
+ std::string loadkey = "runtime.module.loadbinary_";
+ std::string fkey = loadkey + tkey;
const PackedFunc* f = Registry::Get(fkey);
- CHECK(f != nullptr) << "Loader of " << tkey << "(" << fkey << ") is not presented.";
+ if (f == nullptr) {
+ std::string loaders = "";
+ for (auto name : Registry::ListNames()) {
+ if (name.rfind(loadkey, 0) == 0) {
+ if (loaders.size() > 0) {
+ loaders += ", ";
+ }
+ loaders += name.substr(loadkey.size());
+ }
+ }
+ CHECK(f != nullptr)
+ << "Binary was created using " << tkey
+ << " but a loader of that name is not registered. Available loaders are " << loaders
+ << ". Perhaps you need to recompile with this runtime enabled.";
+ }
Module m = (*f)(static_cast<void*>(strm));
n->imports_.emplace_back(std::move(m));
}