如何索引pytorch中的张量?

时间:2018-03-13 02:27:32

标签: python matlab pytorch

我在使用pytorch时遇到了麻烦。 计算musig时,会显示以下消息: 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;

出了什么问题,为什么? 多谢你。

1 个答案:

答案 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]]返回空张量。理解错误原因的一种简单方法是打印xI的形状。并打印rhoN的值。