How can i solve this error?
TypeError: only integer tensors of a single element can be converted to an index
Traceback (most recent call last):
File “Main_mine.py”, line 377, in
best_model, [losses_train, losses_valid, losses_epochs_train, losses_epochs_valid] = Train_Model(grud, train_dataloader, valid_dataloader , lr, epochs,patience)
File “Main_mine.py”, line 206, in Train_Model
outputs = model(inputs)
File “/home/alaa/.local/lib/python3.5/site-packages/torch/nn/modules/module.py”, line 532, in call
result = self.forward(*input, **kwargs)
File “/media/alaa/New Drive2/PHD/PHD3-Missing Values/Codes/archive(1)/run/GRU-D_my_version (copy)/LSTMD_mine.py”, line 168, in forward
, torch.squeeze(Delta[:,i:i+1,:]))
File “/media/alaa/New Drive2/PHD/PHD3-Missing Values/Codes/archive(1)/run/GRU-D_my_version (copy)/LSTMD_mine.py”, line 133, in step
h = (delta_h) * (h)
TypeError: only integer tensors of a single element can be converted to an index
I think the error is happened here
def step(self, x, x_last_obsv, x_mean, h, ct, mask, delta):
batch_size = x.shape[0]
dim_size = x.shape[1]
delta_x = torch.exp(-torch.max(self.zeros_x, self.gamma_x_l(delta)))
delta_h = torch.exp(-torch.max(self.zeros_h, self.gamma_h_l(delta)))
x = mask * x + (1 - mask) * (delta_x * x_last_obsv + (1 - delta_x) * x_mean)
h = (delta_h) * (h)
combined = torch.cat((x, h, mask), 1)
i = F.sigmoid(self.il(combined))
f = F.sigmoid(self.fl(combined))
o = F.sigmoid(self.ol(combined))
c = F.tanh(self.cl(combined))
ct = f*ct + i*c
h = o * (torch.tanh(ct))
return h,ct