我想学习如何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();
});