如何解决张量不能通过unsqueeze2
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 举报,一经查实,本站将立刻删除。