问题描述
rho = base[0][:,1:,:]
mu = base[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 ) )
rho和mu的大小为[16,99,5],而temp_time的大小为[16,100],我想按for循环中所示计算all_base的值,我对它们进行切片,不挤压和变形张量以确保其尺寸一致,但在最后一行出现错误:
bitwise_xor():带有out = ...参数的函数不支持自动微分,但是其中一个参数需要grad。
compute_integral_unbiased中的文件“ .......”,第47行 all_base [:,:,i] = all_base [:,:,i] +(slice_of_mu * slice_of_rho * temp_time ^(slice_of_rho-1))
我不知道如何解决这个问题。你能给我些帮助吗?非常感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)