Ubuntu环境下Tensorflow.NET报错:libtensorflow未找到的解决方案咨询
解决Ubuntu环境下Tensorflow.NET加载libtensorflow失败的问题
检查原生库文件是否正确部署
Linux环境下Tensorflow.NET依赖的是libtensorflow.so系列共享库,而非Windows的tensorflow.dll。先确认输出目录的runtimes/linux-x64/native文件夹中是否存在libtensorflow.so、libtensorflow_framework.so等文件。如果缺失,执行以下命令清理重建项目,确保NuGet包的Linux原生库被正确复制:dotnet restore dotnet clean dotnet publish -c Release -r linux-x64 --self-contained false配置系统库加载路径
即使原生库存在,系统可能无法自动找到。可以通过两种方式指定路径:- 临时生效:运行程序前在终端执行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/your/app/runtimes/linux-x64/native - 代码内指定:在初始化TensorFlow之前添加以下代码(需引入
System.Runtime.InteropServices)[DllImport("libdl.so")] private static extern int dlopen(string filename, int flags); // 初始化TensorFlow前调用 dlopen("/path/to/your/app/runtimes/linux-x64/native/libtensorflow.so", 1); // RTLD_NOW = 1
- 临时生效:运行程序前在终端执行
验证GPU环境版本兼容性
预装的Python TensorFlow 2.10与SciSharp的Redist包可能存在CUDA/CuDNN版本不匹配的问题。TensorFlow 2.10通常对应CUDA 11.2、CuDNN 8.1,执行以下命令检查系统环境版本:nvcc --version cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2若版本不匹配,需调整SciSharp.TensorFlow.Redist-Linux-GPU的版本,或同步升级/降级系统的CUDA/CuDNN。
排除JupyterHub环境限制
JupyterHub的环境隔离可能导致程序无法访问GPU资源或库路径。直接在Jupyter终端中运行发布后的.NET程序,确认是否同样报错,以此排除JupyterHub的配置干扰。
内容的提问来源于stack exchange,提问作者Squirrelkiller
相关产品推荐
相关产品推荐

