0 halide
我是使用Halide的新手,我正在尝试先实现算法.我正在尝试编写一个函数,根据它周围的8个像素的值,跳过下一个像素或进行一些处理,然后移动到下一个像素.尝试写这个时,我得到以下编译器错误:
84:5:错误:'Halide :: Expr'类型的值不能在上下文中转换为'bool'
if(input(x,y) > 0)
Run Code Online (Sandbox Code Playgroud)
我已经完成了所有的教程,并且已经看到select函数是一个选项,但有没有办法比较函数的值或将它们存储在某个地方?
我也可能认为这个问题是错误的,或者可能没有用正确的"Halide心态"来实现它,所以任何建议都会很棒.提前谢谢你的一切!
这里的根本问题是,虽然它们在语法上是交错的,而Halide代码是通过运行C++代码构建的,但Halide代码不是C++代码,反之亦然.Halide代码完全由您在Funcs中构建的Halide ::*数据结构定义.if是C控制流构造; 你可以用它来建立有条件不同卤化物程序,但你不能用它里面卤化物程序的逻辑(一Expr的/ FUNC内).select是Halide(有条件地评估为两个值中的一个的Expr),如同/是C(有条件地执行两个子语句之一的语句).
请放心,你很难在早期就出现这种混乱.我想写一篇专门讲解如何思考Halide中的分阶段编程的教程.
在那之前,简短的,"我怎么做我想要的"回答是你所怀疑的,正如Khouri指出的那样:使用一个选择.
| 归档时间: |
|
| 查看次数: |
730 次 |
| 最近记录: |