我正在使用Qt库在C ++中使用Recurrent Neural Network。它由一个包含拓扑的向量构造,其中元素的数量定义了层数,每个元素指定了每层中的神经元数量。
手头的问题是类需要在矩阵中存储一些权重,这取决于元素的大小以及它们的数量取决于向量的大小。必需的是快速且有效的,基于索引的访问,3维(其中一个维度大小不同)容器。它不一定能够调整大小,但AFAIK不能预先分配bevor构造函数,因为大小和数字是由构造函数给出的。
我试图将它们存储在嵌套向量中,但除了问题如何处理之外我已经读过嵌套向量没有很好的性能,例如。
typedef QVector< QVector< QVector<双> > >权重;
我读了一些关于'动态分配的多维数组'的信息,使用指向指向数组的指针数组......等等。这看起来不太优雅。
Qt还提供了一些Matrix类,但由于我无法预先分配它们,我忽略了它们。
使用其他库Boost。
另一种解决方案可能是根据我的需要编写一些类或自定义容器,但我不愿意,除非这是最好的方法。
所以我要求建议去这里的方法是什么?是否有可能预先分配内存或是否需要动态?
免责声明:我知道有很多类似的问题,但他们似乎缺乏比较可能性,我也不总是确定基础情况是否相同。