rho = base[0][:,1:,:]
mu = base[1][:,1:,:]
diff_time = (time[:, 1:] - time[:, :-1]) * non_pad_mask[:, 1:]
temp_time = diff_time.unsqueeze(2) * \
torch.rand([*diff_time.size(), num_samples], device=data.device)
temp_time /= (time[:, :-1] +1).unsqueeze(2)
all_base = torch.zeros(rho.size())
for i in range(rho.size()[2]):
slice_of_mu = mu.clone()[:,:,i]
slice_of_mu = slice_of_mu.unsqueeze(2)
slice_of_rho = rho.clone()[:,:,i]
slice_of_rho = slice_of_rho.unsqueeze(2)
all_base[:,:,i] = all_base[:,:,i] + ( slice_of_mu * slice_of_rho * temp_time ^ ( slice_of_rho - 1 ) )
size of rho and mu are [16,99,5], and size of temp_time is [16,99,100],I want to calculate the value of all_base as shown in the for loop, I sliced and deformed these tensors to ensure their dimensions are consistent, but I get an error in the last line:
bitwise_xor(): functions with out=… arguments don’t support automatic differentiation, but one of the arguments requires grad.
File “…”, line 47, in compute_integral_unbiased
all_base[:,:,i] = all_base[:,:,i] + ( slice_of_mu * slice_of_rho * temp_time ^ ( slice_of_rho - 1 ) )
I don’t know how to solve this problem. Can you give me some help? Thank you very much.