SymbolBlock.imports ValueError: There are multiple outputs with name


I successful export the json and params file. but failed in imports:

In [5]: deserialized_net = gluon.nn.SymbolBlock.imports("net-symbol.json", ['data'], "net-0000.params")
ValueError                                Traceback (most recent call last)
<ipython-input-5-14ec4a8a2f73> in <module>()
----> 1 deserialized_net = gluon.nn.SymbolBlock.imports("msdnet-symbol.json", ['data'], "msdnet-0000.params")

~/incubator-mxnet/python/mxnet/gluon/ in imports(symbol_file, input_names, param_file, ctx)
   1018             input_names = [input_names]
   1019         inputs = [symbol.var(i) for i in input_names]
-> 1020         ret = SymbolBlock(sym, inputs)
   1021         if param_file is not None:
   1022             ret.collect_params().load(param_file, ctx=ctx)

~/incubator-mxnet/python/mxnet/gluon/ in __init__(self, outputs, inputs, params)
   1046         row_sparse_storage = ndarray.ndarray._STORAGE_TYPE_STR_TO_ID['row_sparse']
   1047         for i in out:
-> 1048             for j in i.get_internals():
   1049                 assert(j.attr("__storage_type__") != str(row_sparse_storage)), \
   1050                     "SymbolBlock doesn't support Parameter '%s' because its storage " \

~/incubator-mxnet/python/mxnet/symbol/ in <genexpr>(.0)
     91         <Symbol _plus0>
     92         """
---> 93         return (self[i] for i in self.list_outputs())
     95     def __add__(self, other):

~/incubator-mxnet/python/mxnet/symbol/ in __getitem__(self, index)
    515                 if name == index:
    516                     if idx is not None:
--> 517                         raise ValueError('There are multiple outputs with name \"%s\"' % index)
    518                     idx = i
    519             if idx is None:

ValueError: There are multiple outputs with name "bboxsplit3_split0_output0"

I don’t understand this error, and how to solve it ? thanks in advance!


How did you make an export? Which method(s) did you use?


I use the gluoncv official yolov3 model here.

Export the model as :

net.export("yolo", epoch=1)

and import as:

symbol = gluon.nn.SymbolBlock.imports("yolo-symbol.json", ['data'], "yolo-0001.params")


This still appears to be an issue in the v1.3.1 prerelease. An issue is open on GitHub. Looks there are a couple workarounds but nothing solid. Hopefully this gets fixed soon, it’s quite the nuisance.