我有一个dtype=f64
的ArrayFire数组,需要将其转换为dtype=f32
。除了转换到主机阵列并通过执行static_cast
进行迭代之外,我不知道如何做到这一点。我相信还有更好的方法。我找到了af_cast
,但它似乎只是C接口的一部分。
// Example, double precision array
af::array A_double(100, 1, f64); // f64 = double precision
// Need to cast this to an f32 array somehow...
af::array A_single = cast<f32>(A_double); // <-- something like this?
答案简单得令人尴尬。ArrayFire库有一个名为as
的函数,我不知道它,在文档中也忽略了它。
// Example, double precision array
af::array A_double(100, 1, f64); // f64 = double precision
// Cast to an f32 array
af::array A_single = A_double.as(f32);
这是文档的链接。