What is the difference between call() and __call__() method in python?
_call_ is python magic method (or dunder method) which make class objects callable. but on the other hand call is user defined method in Keras which at the background use mentioned _call_ method but before using it this user defined call do some extra things like building weight and bias tensors based on the input tensor shape.
In the tensorflow documentation I see the call() method defined when subclassing activations and models. However, in case of subclassing regularizers, initializers and constraints, they define the __class__() method instead.
When playing around with both, I could not find any differences myself.
Could someone tell me what the difference is?