You are viewing a plain text version of this content. The canonical link for it is here.
Posted to discuss-archive@mxnet.apache.org by James Mracek via MXNet Forum <mx...@discoursemail.com.INVALID> on 2020/08/29 18:57:22 UTC
[MXNet Forum] [Gluon] Assertion error for aux state when exporting
model with dangling layer
Let's suppose I have a HybridBlock consisting of an MLP model. The return value of the hybrid_forward method of my model is the pair `(output, final_hidden_layer)`. This model trains by hooking some loss function up to the `output` as predictions.
After base training, I then create a new model from this HybridBlock by adding an additional layer on top of `final_hidden_layer`, like so:
```
class CalibratedModel(gluon.nn.HybridBlock):
def __init__(self, model, calibration_layer, model_output_name, prefix=None, params=None):
super().__init__(prefix=prefix, params=params)
self.output_idx = model.ordered_output_names.index(model_output_name)
with self.name_scope():
self.model = model.model
self.calibration_layer = calibration_layer
def hybrid_forward(self, F, *args):
X = self.model(*args)
Y = X[self.output_idx]
return self.calibration_layer(Y)
```
The problem I'm observing is that when I instantiate a `CalibratedModel` and try to call `export()`, I get the following error:
```
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-11-7daab4c36e3a> in <module>
----> 1 cm.export('/ebs/test')
~/.local/lib/python3.6/site-packages/mypackage/Gluon/blocks.py in export(self, path, epoch, remove_amp_cast)
49
50 def export(self, path, epoch=0, remove_amp_cast=True):
---> 51 return self.model.export(path, epoch, remove_amp_cast)
52
53 def getName(self):
~/.local/lib/python3.6/site-packages/mxnet/gluon/block.py in export(self, path, epoch, remove_amp_cast)
1133 arg_dict['arg:%s'%name] = param._reduce()
1134 else:
-> 1135 assert name in aux_names
1136 arg_dict['aux:%s'%name] = param._reduce()
1137 save_fn = _mx_npx.save if is_np_array() else ndarray.save
AssertionError:
```
The call to export successfully exports the symbol file, but fails exporting the parameters due to the above assertion. I believe this is caused by my original model having a "dangling" layer, in some sense, because the layer and parameters that produces `output` are unused.
Have any of you experienced this error before and have a fix available?
---
[Visit Topic](https://discuss.mxnet.io/t/assertion-error-for-aux-state-when-exporting-model-with-dangling-layer/6549/1) or reply to this email to respond.
You are receiving this because you enabled mailing list mode.
To unsubscribe from these emails, [click here](https://discuss.mxnet.io/email/unsubscribe/83ac61f39d450d5da190180dfe9d6922ffadf631da0b4a0c86d070c734a5045d).
[MXNet Forum] [Gluon] Assertion error for aux state when exporting
model with dangling layer
Posted by James Mracek via MXNet Forum <mx...@discoursemail.com.INVALID>.
After some searching, the above appears to be a known bug with a fix coming soon:
https://github.com/apache/incubator-mxnet/pull/17970
---
[Visit Topic](https://discuss.mxnet.io/t/assertion-error-for-aux-state-when-exporting-model-with-dangling-layer/6549/2) or reply to this email to respond.
You are receiving this because you enabled mailing list mode.
To unsubscribe from these emails, [click here](https://discuss.mxnet.io/email/unsubscribe/242962e628e95a34c9ffc99db0ec91064882c1550854c56d43d7031b0ed0c565).