我正在使用Tensorflow r1.3在C ++中构建自定义Tensorflow操作和内核实现。我使用建议表单this bug report成功构建并链接了op库。
我的代码几乎是Tensorflow API的样板操作代码。
当我使用tf.load_op_library()
加载操作时,我可以在Python中使用ops并使用它们创建图形并将其另存为图形定义。当我随后尝试加载Ops然后在带有TF_LoadLibrary()
的C / C ++中时,调用将返回OK状态,但无法找到操作。
我总是得到错误:
未找到:操作类型未注册' ...'在二进制运行中...确保操作和内核在此过程中运行的二进制文件中注册。
我知道这篇文章:Understand Op Registration and Kernel Linking in TensorFlow。 Op注册和内核注册代码都可以在op库代码中找到。
我试过了:
Register("MyOp", TF::OpRegistry::Global());
Py_Initialize()
初始化Python解释器,并使用PyRun_SimpleString
任何人都尝试过并已成功了吗?任何输入?我很绝望。