C++ 关于ArrayFire中的阵列重塑

C++ 关于ArrayFire中的阵列重塑,c++,tensor,arrayfire,C++,Tensor,Arrayfire,现在我正在使用ArrayFire,遇到了一些奇怪的事情。例如: 仪表板集成模块是257x1x1x1 af::地板(A)尺寸为1 x 1 x 1 x 257 2*A dim为1 x 1 x 1 x 257 A-1仪表板尺寸为1 x 1 x 1 x 257 常数(1,A.dims())是257x1x1x257 其中,A是由以下内容生成的: 用于(大小jloop=0;jloop

现在我正在使用ArrayFire,遇到了一些奇怪的事情。例如:

仪表板集成模块是257x1x1x1
af::地板(A)尺寸为1 x 1 x 1 x 257
2*A dim为1 x 1 x 1 x 257
A-1仪表板尺寸为1 x 1 x 1 x 257
常数(1,A.dims())是257x1x1x257
其中,
A
是由以下内容生成的:

用于(大小jloop=0;jloop
所以我不得不一直使用af::moddims。但这真的很奇怪。有人有类似的问题吗

的整个
g的
部分如下:

auto Z_add=af::constant(0,af::dim4(K,T,K,noiseDims[3]);//Z_add是Z
自动Z_梯度=af::常数(0,af::dim4(K,T,K,noiseDims[3]);//Z_梯度是部分的(Z_pji)/部分的(m_pj)
对于(大小\u t iloop=0;iloop自动条件1=(af::abs(ploop-iloop)现在我使用:
autoa=af::moddims(矩阵(ploop,jloop,0,0),K)
而且它工作得很好。仍然不知道为什么。我不明白你想做什么。你不需要for循环或gfor循环来完成这项工作。所有这些操作都将在每个元素上执行。for和gfor循环正是用于其他操作的。我需要更多的上下文来帮助你。需要gfor的操作很少。StackOverflow并不是这些来回的最佳平台。最好在我们的论坛或空闲频道上讨论这些事情。谢谢@umarrshad。发布了全部代码。想知道论坛或空闲频道在哪里。现在我使用:
auto A=af::moddims(matrix(ploop,jloop,0,0),K)
而且它工作得很好。仍然不知道为什么。我不明白你想做什么。你不需要for循环或gfor循环来完成这项工作。所有这些操作都将在每个元素上执行。for和gfor循环正是用于其他操作的。我需要更多的上下文来帮助你。需要gfor的操作很少。StackOverflow并不是这些往返的最佳平台。最好在我们的论坛或slack频道上讨论这些事情。谢谢@Umarashad。全部代码已发布。不知道论坛或slack频道在哪里。