You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by GitBox <gi...@apache.org> on 2018/12/04 15:32:32 UTC

[GitHub] Ajoo opened a new issue #8438: HybridBlocks don't work with constant NDArray initialized Parameters

Ajoo opened a new issue #8438: HybridBlocks don't work with constant NDArray initialized Parameters
URL: https://github.com/apache/incubator-mxnet/issues/8438
 
 
   Hi. HybridBlocks with parameters initialized with a constant NDArray parameter don't seem to work with hybridize(). I always get a "TypeError: Object of type 'NDArray' is not JSON serializable" whan running hybridize() or tojson() on a symbol passed through.
   
   I guess a minimal example to reproduce this error would be:
   
   
       import mxnet as mx
   
       class LinearMap(mx.gluon.HybridBlock):
           def __init__(self, A, **kwargs):
               super(LinearMap, self).__init__(**kwargs)
               with self.name_scope():
                   self.A = self.params.get('A', shape=A.shape, init=mx.init.Constant(A))
   
           def hybrid_forward(self, F, x, A=None):
               return F.dot(A, x)
       
       l = LinearMap(mx.nd.ones((2,2)))
       l.initialize()
   
       l(mx.nd.array([1., 2.])) #this runs fine
       l.hybridize()
       l(mx.nd.array([1., 2.])) #this throws a TypeError
   
   
   The same example runs fine when the initializer is replaced with any other, I'm guessing it just can't serialize the NDArray used to initialize with a constant.
   
   As an aside, I didn't know that hybrid_forward would be called with parameters passed as keyword arguments. None of the tutorials mention it and the API docs aren't very explicit about it... I don't know if this is how hybrid_forward is supposed to be used.
   

----------------------------------------------------------------
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:
users@infra.apache.org


With regards,
Apache Git Services