Hi, in order to implement Adam gradient descent I wanted to subclass SharedVariable.
Reading the documentation available at location [1] was quite confusing and I am let with many questions, and I will be grateful for any elucidations: 1. the user friendly constructor shared(). Why is it called a "constructor"? A constructor [2] is like an instance method and should be inside a class. This does not look like an instance method. This looks like a static *factory method* [3] and it should be called as such. 2. about shared(), the documentation says: "This function iterates over constructor functions to find a suitable SharedVariable subclass", this sentence is very cryptic and let me confused but then I read the documentation of shared_constructor and it explains what it seems to be a register of "constructors". 3. why is shared_constructor not called register_shared_constructor, or better register_shared_factory_function? Naming is important and that name suggests that shared_constructor is a constructor/factory but it's not, it's purpose is to add constructors/factories to a register. 4. "If you want to use a specific shared variable constructor, consider calling it directly." Again, confusion. Is this suggesting to trigger the constructor __init__ by direct instantiation or to create a constructor/factory function myself and call it, or is it suggesting that if I add a constructor/factory to the register, then this will be available in theano.compile.sharedvalue's namespace? (and even this latter case does not seem to be how it works because the "register" shared_constructor does not let to specify the name of the constructor). Thank you in advance for your clarifications and I am sorry this post sounds like a rant, but I got frustrated and I think that describing my difficulties reading the documentation might be helpful for you to improve it. [1] http://deeplearning.net/software/theano/library/compile/shared.html [2] https://en.wikipedia.org/wiki/Constructor_(object-oriented_programming) [3] https://en.wikipedia.org/wiki/Factory_method_pattern -fstab -- --- You received this message because you are subscribed to the Google Groups "theano-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
