我想学习如何install new op。为此,我正在遵循给定的教程。我创建了一个名为user_ops的文件夹,创建了一个“zero_out.cc”文件,并复制了教程中给出的代码。当我尝试将Op编译为带有g++错误的动态库时,出现以下消息:



为什么会这样呢?我该如何解决?

最佳答案

假设唯一的问题是未定义的Status类型-除此之外,复制和粘贴教程代码就可以了-您需要在第一次使用using namespace tensorflow之前将Status移至,或者完全限定它(如return tensorflow::Status::OK())

例如,如果您执行模板化版本,则REGISTER_OP部分的内容如下:

REGISTER_OP("ZeroOut")
    .Attr("T: {float, int32}")
    .Input("to_zero: T")
    .Output("zeroed: T")
    .SetShapeFn([](::tensorflow::shape_inference::InferenceContext* c) {
      c->set_output(0, c->input(0));
      return tensorflow::Status::OK();
    });

07-24 09:49
查看更多