我想转置Halide :: Buffer。有办法吗?
我曾在Halide中尝试过transpose()。但是显示错误。
Halide::Func B;
Halide::Var x, y, c;
B(x, y, c)= 0.0f;
B(0,0,c)= 1.0f; B(1,0,c)= 0.0f; B(2,0,c)= 0.0f;
B(0,1,c)= 1.0f; B(1,1,c)= 2.0f; B(2,1,c)= 0.0f;
B(0,2,c)= 1.0f; B(1,2,c)= 2.0f; B(2,2,c)= 3.0f;
Halide::Buffer<float> B_mat = B.realize(6, 6, 1);
Halide::Buffer<float> C_mat = B_mat.transposed(0,1);
错误:请求从“ void”转换为非标量类型“ Halide :: Buffer” Halide :: Buffer C_mat = B_mat.transpose(0,1);
答案 0 :(得分:0)
您发布的代码和错误消息之间似乎不匹配。
您的错误消息指出您已使用transpose(0, 1)
,但不会返回Halide::Buffer<float>
:
void transpose(int d1, int d2)
您应该看看documentation of transpose and transposed并使用
Buffer<T, D> transposed(int d1, int d2)
相反。