pytorch - 张量不能用 unsqueeze(2) 自动分级
问题描述
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 ) )
rho 和 mu 的大小为 [16,99,5],temp_time 的大小为 [16,99,100],我想计算 all_base 的值,如 for 循环所示,我对这些张量进行切片、解压缩和变形以确保它们的尺寸是一致的,但我在最后一行得到一个错误:
bitwise_xor():带有 out=... 参数的函数不支持自动微分,但其中一个参数需要 grad。
文件“.......”,第 47 行,compute_integral_unbiased all_base[:,:,i] = all_base[:,:,i] + ( slice_of_mu * slice_of_rho * temp_time ^ ( slice_of_rho - 1 ) )
我不知道如何解决这个问题。你能给我一些帮助吗?非常感谢。
解决方案
推荐阅读
- java - 如何在几个片段之间进行背压
- haskell - Aeson - 简单地解码 ByteString -> Value
- javascript - 使用Javascript接口绘制Android Surfaceview时闪烁
- algorithm - 为什么 B 树的根可以有最小度 2?
- python - 编程课的早期编码
- reactjs - 如何使用 React Router 获取通过 Route 传递的道具
- ruby-on-rails - 我得到了一个未定义的方法 `each' 用于 nil:NilClass | 尝试将帖子添加到用户个人资料
- jquery - 基于数组键的访问值
- javascript - 如何从数组中删除对象并将该数组与初始 for 循环一起使用?
- javascript - 2.5 MB .js 文件太大?无法从文件加载变量