Hi, I tried to create a siamese model and encounter an error every time I tried to connect the model to cuda or called model.train(). Here some code snippet of the model forward:
class SiameseNetwork(nn.Module):
    def __init__(self):
        super(SiameseNetwork, self).__init__()
        self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
        self.dropout = 0.17
        self.n_units = 100
        self.n_label = 2
        self.w = nn.Linear(self.n_units,self.n_label).to(self.device)
        self.w_v = nn.Linear(2*self.n_units,self.n_units).to(self.device)
        self.lstm = nn.LSTM(input_size = self.n_units, hidden_size=self.n_units).to(self.device)
        self.blstm = nn.LSTM(input_size = self.n_units, hidden_size=self.n_units).to(self.device)
  
    def forward(self, object1, object2):
      output1 = self._traverse_obj(object1)
      output2 = self._traverse_obj(object2)
         
      return output1, output2

net = SiameseNetwork()
net.cuda()
net.train()

And when I tried to called net.cuda() it give an error:

7     # Declare Siamese Network
8     net = SiameseNetwork()
 → 9     net.cuda()
10     #device = torch.device(“cuda:0” if torch.cuda.is_available() else “cpu”)
11     #net = net.to(device)
/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in cuda(self, device)
678             Module: self
679         “”"
 → 680         return self._apply(lambda t: t.cuda(device))
681
682     def xpu(self: T, device: Optional[Union[int, device]] = None) → T:
/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in _apply(self, fn)
567
568     def _apply(self, fn):
 → 569         for module in self.children():
570             module._apply(fn)
571
TypeError: children() missing 1 required positional argument: ‘node’

while if I called net.train():

 → 2     net.train()
/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in train(self, mode)
1714             raise ValueError(“training mode is expected to be boolean”)
1715         self.training = mode
 → 1716         for module in self.children():
1717             module.train(mode)
1718         return self
TypeError: children() missing 1 required positional argument: ‘node’

Does anyone know how to solved this problem? Thank you.