feevos opened a new issue #9288: Get HybridBlock layer shape on runtime URL: https://github.com/apache/incubator-mxnet/issues/9288 Dear all, I am trying to build a custom pooling layer (both for ndarray and Symbol) and I need to know the input shape at runtime. According to the documentation, HybridBlock has the function "infer_shape", but I can't make it work. Any pointers into what I am doing wrong? ## mxnet version 1.0.0 , build from conda, python3. ## Minimum reproducible example For example: ```Python import mxnet as mx import mxnet.ndarray as nd from mxnet.gluon import HybridBlock class runtime_shape(HybridBlock): def __init__(self, **kwards): HybridBlock.__init__(self,**kwards) def hybrid_forward(self,F,_input): print (self.infer_shape(_input)) return _input xx = nd.random_uniform(shape=[5,5,16,16]) mynet = runtime_shape() mynet.hybrid_forward(nd,xx) ``` ## Error Message: ```Python --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-41-3f539a940958> in <module>() ----> 1 mynet.hybrid_forward(nd,xx) <ipython-input-38-afc9785b716d> in hybrid_forward(self, F, _input) 17 def hybrid_forward(self,F,_input): 18 ---> 19 print (self.infer_shape(_input)) 20 21 return _input /home/dia021/anaconda2/lib/python2.7/site-packages/mxnet/gluon/block.pyc in infer_shape(self, *args) 460 def infer_shape(self, *args): 461 """Infers shape of Parameters from inputs.""" --> 462 self._infer_attrs('infer_shape', 'shape', *args) 463 464 def infer_type(self, *args): /home/dia021/anaconda2/lib/python2.7/site-packages/mxnet/gluon/block.pyc in _infer_attrs(self, infer_fn, attr, *args) 448 def _infer_attrs(self, infer_fn, attr, *args): 449 """Generic infer attributes.""" --> 450 inputs, out = self._get_graph(*args) 451 args, _ = _flatten(args) 452 arg_attrs, _, aux_attrs = getattr(out, infer_fn)( /home/dia021/anaconda2/lib/python2.7/site-packages/mxnet/gluon/block.pyc in _get_graph(self, *args) 369 params = {i: j.var() for i, j in self._reg_params.items()} 370 with self.name_scope(): --> 371 out = self.hybrid_forward(symbol, *grouped_inputs, **params) # pylint: disable=no-value-for-parameter 372 out, self._out_format = _flatten(out) 373 /home/dia021/anaconda2/lib/python2.7/site-packages/mxnet/gluon/block.pyc in __exit__(self, ptype, value, trace) 78 if self._block._empty_prefix: 79 return ---> 80 self._name_scope.__exit__(ptype, value, trace) 81 self._name_scope = None 82 _BlockScope._current = self._old_scope AttributeError: 'NoneType' object has no attribute '__exit__' ```
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
