网络图中的某些操作由tf.py_func
实现。当我导出训练后的模型进行投放时,导出的图形仍将包含PyFunc
操作。例如,我可以在导出的图形中查询以下操作:
func = tf.get_default_graph().get_operation_by_name('scope_name/PyFunc')
当使用给定的输入执行图形时,发生错误:
Node: scope_name/PyFunc_1 = PyFunc[Tin=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT32], Tout=[DT_INT64], token="pyfunc_1", ...
ValueError: callback pyfunc_1 is not found
所以问题是:是否可以将Python函数绑定到相应的操作中?我知道我们可以在TensorFlow中为张量分配值。但是我不知道如何将一个函数绑定到一个操作中。
我也检查了此网页[https://github.com/endernewton/tf-faster-rcnn/pull/307]。我们可以编写相应的TF函数来替换tf.py_func
。但是,如果我们可以将Python函数分配给一个操作,那将会很方便。