oli62 2025-03-18 21:35 采纳率: 0%
浏览 11

在ubuntu上运行,libtensorflow_compression.so报错

File "/home/x-lab/ADJSCC-main/adjscc_cifar10.py", line 2, in <module>
    from util_module import Attention_Encoder, Attention_Decoder
  File "/home/x-lab/ADJSCC-main/util_module.py", line 1, in <module>
    import tensorflow_compression as tfc
  File "/home/x-lab/ADJSCC-main/tensorflow_compression/__init__.py", line 18, in <module>
    from tensorflow_compression.python.datasets.y4m_dataset import *
  File "/home/x-lab/ADJSCC-main/tensorflow_compression/python/datasets/y4m_dataset.py", line 18, in <module>
    from tensorflow_compression.python.ops import gen_ops
  File "/home/x-lab/ADJSCC-main/tensorflow_compression/python/ops/gen_ops.py", line 20, in <module>
    ops = load_library.load_op_library(resource_loader.get_path_to_datafile(
  File "/home/x-lab/miniconda3/envs/tf27/lib/python3.9/site-packages/tensorflow/python/framework/load_library.py", line 58, in load_op_library
    lib_handle = py_tf.TF_LoadLibrary(library_filename)
tensorflow.python.framework.errors_impl.NotFoundError: /home/x-lab/ADJSCC-main/tensorflow_compression/python/ops/../../cc/libtensorflow_compression.so: undefined symbol: _ZNK10tensorflow8OpKernel11TraceStringERKNS_15OpKernelContextEb

在Ubuntu上运行时报错,求问该如何解决这个问题?
tensorflow-gpu版本为2.7.0,tensorflow-compression版本为2.7.0,libtensorflow_compression.so为手动编译的文件。

  • 写回答

5条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-03-18 22:20
    关注
    让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供,如果还有疑问可以点击头像关注私信或评论
    如果答案让您满意,请采纳、关注,非常感谢!

    根据你提供的错误信息,问题出在 libtensorflow_compression.so 文件中,具体是 undefined symbol: _ZNK10tensorflow8OpKernel11TraceStringERKNS_15OpKernelContextEb。这个错误通常是由于 TensorFlow 和 tensorflow-compression 的版本不匹配,或者编译 libtensorflow_compression.so 时使用的 TensorFlow 版本与运行时使用的 TensorFlow 版本不一致导致的。

    解决方案

    1. 检查 TensorFlow 和 tensorflow-compression 的版本匹配

      • 确保 tensorflow-gputensorflow-compression 的版本完全一致。你提到两者都是 2.7.0,这应该是正确的,但请再次确认。
    2. 重新编译 libtensorflow_compression.so

      • 确保你在编译 libtensorflow_compression.so 时使用的 TensorFlow 版本与运行时使用的 TensorFlow 版本一致。
      • 如果你使用的是手动编译的 libtensorflow_compression.so,请确保编译环境与运行环境一致。
    3. 清理并重新安装 tensorflow-compression

      • 如果你是通过 pip 安装的 tensorflow-compression,尝试卸载并重新安装:
        pip uninstall tensorflow-compression
        pip install tensorflow-compression==2.7.0
        
    4. 检查环境变量

      • 确保 LD_LIBRARY_PATH 环境变量包含 libtensorflow_compression.so 所在的目录。你可以通过以下命令设置:
        export LD_LIBRARY_PATH=/home/x-lab/ADJSCC-main/tensorflow_compression/python/ops/../../cc:$LD_LIBRARY_PATH
        
    5. 检查 TensorFlow 安装

      • 确保 TensorFlow 安装正确,并且 GPU 支持已启用。你可以通过以下命令检查 TensorFlow 是否正确安装:
        import tensorflow as tf
        print(tf.__version__)
        print(tf.test.is_gpu_available())
        
    6. 使用预编译的二进制文件

      • 如果你无法解决编译问题,考虑使用预编译的 tensorflow-compression 二进制文件,而不是手动编译。

    示例代码

    以下是一个简单的 Python 脚本,用于检查 TensorFlow 和 GPU 是否正常工作:

    import tensorflow as tf
    
    # 打印 TensorFlow 版本
    print("TensorFlow version:", tf.__version__)
    
    # 检查 GPU 是否可用
    print("GPU available:", tf.test.is_gpu_available())
    

    总结

    • 确保 TensorFlow 和 tensorflow-compression 版本一致。
    • 重新编译 libtensorflow_compression.so,确保编译环境与运行环境一致。
    • 检查环境变量,确保 libtensorflow_compression.so 所在的目录在 LD_LIBRARY_PATH 中。
    • 如果问题仍然存在,考虑使用预编译的 tensorflow-compression 二进制文件。

    希望这些步骤能帮助你解决问题。如果问题仍然存在,请提供更多详细信息,以便进一步诊断。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月18日