thanks for the reply. my need for **kwargs arises from the following kinda situation. i want to add some attributes and methods to, say, the nn.Conv2D class. it will be like
class Foo:
    def __init__(self, foo1, foo2, **kwargs):
        pass

class FooConv2D(nn.Conv2D, Foo):
    def __init__(self, in_channels, ou_channels, ..., foo1, foo2, **kwargs):
        ....

as you can see, i cant initialize in one call with super because of the different signatures of the parents. of course i dont have to use super(), but well, isnt it uglier?