使用tensorflow插件图像转换时出现未定义的符号错误



我试图使用tensorflow插件来进行图像仿射变换,但我遇到了奇怪的错误。

我使用anaconda安装了tensorflow 2.1,然后pip在conda上还没有的环境中安装tensorflow插件。错误可能来自于这个事实。。。

这是代码,有人能试试吗?

some_image_path = '/path/to/an/image'
with open(some_image_path, 'rb') as f:
image = tf.io.decode_image(f.read())
ops = tfa.image.transform_ops.angles_to_projective_transforms(90, image.shape[0], image.shape[1])
image = tfa.image.transform(image, ops)

这里的日志跟踪:

Traceback (most recent call last):
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3331, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-24-2e958d55097f>", line 1, in <module>
tfa.image.transform(image, ops)
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 568, in __call__
result = self._call(*args, **kwds)
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 615, in _call
self._initialize(args, kwds, add_initializers_to=initializers)
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 497, in _initialize
*args, **kwds))
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 2389, in _get_concrete_function_internal_garbage_collected
graph_function, _, _ = self._maybe_define_function(args, kwargs)
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 2703, in _maybe_define_function
graph_function = self._create_graph_function(args, kwargs)
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 2593, in _create_graph_function
capture_by_value=self._capture_by_value),
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/framework/func_graph.py", line 978, in func_graph_from_py_func
func_outputs = python_func(*func_args, **func_kwargs)
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 439, in wrapped_fn
return weak_wrapped_fn().__wrapped__(*args, **kwds)
File "/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/framework/func_graph.py", line 968, in wrapper
raise e.ag_error_metadata.to_exception(e)
tensorflow.python.framework.errors_impl.NotFoundError: in converted code:
/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_addons/image/transform_ops.py:110 transform  *
output = _image_so.ops.addons_image_projective_transform_v2(
/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_addons/utils/resource_loader.py:49 ops
self._ops = tf.load_op_library(get_path_to_datafile(self.relative_path))
/home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_core/python/framework/load_library.py:57 load_op_library
lib_handle = py_tf.TF_LoadLibrary(library_filename)
NotFoundError: /home/nicolas/.anaconda3/envs/posenet/lib/python3.7/site-packages/tensorflow_addons/custom_ops/image/_image_ops.so: undefined symbol: _ZNK10tensorflow15shape_inference16InferenceContext11DebugStringEv

好的,很抱歉,这实际上是一个将pip包与conda混合的错误。

因此,解决方案是使用pip而不是conda,直到tensorflow插件在conda上发布!

最新更新