我在使用pytorch
时遇到了麻烦。
计算mu
和sig
时,会显示以下消息:
ValueError:切片结果为空张量
这是我的代码:
x = mu + sig*torch.randn(N,1)
S = -x**2 + 100
sorted_v , I = torch.sort(S,0)
mu = alpha*torch.mean(x[I[(1-rho)*N:N]]) + (1-alpha)*mu
sig = alpha*torch.std(x[I[(1-rho)*N:N]]) + (1-alpha)*sig
在MATLAB
我会做这样的事情:
mu = alpha*mean(x(I((1-rho)*N:N))) + (1-alpha)*mu;
sig = alpha*std(x(I((1-rho)*N:N))) + (1-alpha)*sig;
出了什么问题,为什么? 多谢你。
答案 0 :(得分:0)
由于您的代码不可运行,我无法为您提供解决错误的解决方案。但我可以告诉你为什么你可能会收到错误。
在以下两行代码中:
mu = alpha * torch.mean(x[I[(1-rho)*N:N]]) + (1-alpha) * mu
sig = alpha * torch.std(x[I[(1-rho)*N:N]]) + (1-alpha) * sig
I[(1-rho)*N:N]
或x[I[(1-rho)*N:N]]
返回空张量。理解错误原因的一种简单方法是打印x
和I
的形状。并打印rho
和N
的值。