'Can't set attribute for Pytorch LightningModule

I am trying to import initiate a LightningModule class module, but for some reasons i unable to set hparams. However if i change the name to hparams2 it suddenly seems to work. I have no idea how and any feedback would be apricated,.

import pytorch_lightning as pl
class ImagenetTransferLearningWorks(pl.LightningModule):
    def __init__(self, num_classes = 10):
        super().__init__()
        self.hparams2 =SimpleNamespace(
           num_classes = num_classes
          )
        
        #self._create_network()
        

class ImagenetTransferLearning(pl.LightningModule):
    def __init__(self, num_classes = 10):
        super().__init__()
        self.hparams =SimpleNamespace(
           num_classes = num_classes
          )
        
        
ImagenetTransferLearningWorks()
ImagenetTransferLearning()

results in the following error:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<command-3180059140582422> in <module>
     20 
     21 ImagenetTransferLearningWorks()
---> 22 ImagenetTransferLearning()

<command-3180059140582422> in __init__(self, num_classes)
     14     def __init__(self, num_classes = 10):
     15         super().__init__()
---> 16         self.hparams =SimpleNamespace(
     17            num_classes = num_classes
     18           )

/databricks/python/lib/python3.8/site-packages/torch/nn/modules/module.py in __setattr__(self, name, value)
   1176                     buffers[name] = value
   1177                 else:
-> 1178                     object.__setattr__(self, name, value)
   1179 
   1180     def __delattr__(self, name):

AttributeError: can't set attribute

I don't understand what goes wrong here, could someone please explain to me why this happens?

Thank you in advance,



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source