我想读取具有 Eigen 的 MNIST 数据集,每个文件都由一个矩阵表示。我希望在运行时确定矩阵大小,因为训练集和测试集的大小不同。
Map<Matrix<uchar,rows,cols,RowMajor>> MNIST_dataset((uchar*)*_dataset);
但是得到如下错误:
NIST_Read.cpp:43:26: error: the value of 'rows' is not usable in a constant expression
Map<Matrix<uchar,rows,cols,RowMajor>> MNIST_dataset((uchar*)*_dataset);
^~~~
Eigen::Map可以这样用吗?
最佳答案
我们需要知道什么是rows
,但如果您想将它用作模板参数,它必须是constexpr
variable。 (或文字整数的宏,但我们不要那样做)。但是,您说您需要在运行时确定矩阵大小,因此您需要使用 Dynamic
作为数字或行并在构造函数中指定值:
Map<Matrix<uchar,Dynamic,cols,RowMajor>> MNIST_dataset((uchar*)*_dataset, rows, cols);
关于c++ - 特征:将数组映射到矩阵大小未知的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49322814/