Google Colaboratory ImportError: libcublas.so.10.0: cannot open shared object file: No such file or

Posted

技术标签:

【中文标题】Google Colaboratory ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory when running【英文标题】: 【发布时间】:2020-04-10 10:39:28 【问题描述】:

我正在关注这篇关于 Google Colaboratory 的 AI 农业的文章

https://medium.com/deepquestai/ai-in-agriculture-detecting-defects-in-apples-b246799b329c

运行python文件时会报错

!python apple_detection_training.py

ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory when running

!pip install tensorflow-gpu==1.13.1
!pip install keras
!pip install opencv-python
!pip install imageai --upgrade
!unzip apple_detection_dataset.zip
!python apple_detection_training.py

使用 TensorFlow 后端。 回溯(最近一次通话最后): 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow.py”,第 58 行,在 从 tensorflow.python.pywrap_tensorflow_internal 导入 * 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py”,第 28 行,在 _pywrap_tensorflow_internal = swig_import_helper() 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py”,第 24 行,在 swig_import_helper _mod = imp.load_module('_pywrap_tensorflow_internal', fp, 路径名, 描述) 文件“/usr/lib/python3.6/imp.py”,第 243 行,在 load_module return load_dynamic(名称,文件名,文件) 文件“/usr/lib/python3.6/imp.py”,第 343 行,在 load_dynamic 返回_load(规格) ImportError:libcublas.so.10.0:无法打开共享对象文件:没有这样的文件或目录 在处理上述异常的过程中,又出现了一个异常: 回溯(最近一次通话最后): 文件“apple_detection_training.py”,第 1 行,在 从 imageai.Detection.Custom 导入 DetectionModelTrainer 文件“/usr/local/lib/python3.6/dist-packages/imageai/Detection/init.py”,第 2 行,在 从 imageai.Detection.keras_retinanet.models.resnet 导入 resnet50_retinanet 文件“/usr/local/lib/python3.6/dist-packages/imageai/Detection/keras_retinanet/models/resnet.py”,第 19 行,在 导入 keras 文件“/usr/local/lib/python3.6/dist-packages/keras/init.py”,第 3 行,在 从 。导入实用程序 文件“/usr/local/lib/python3.6/dist-packages/keras/utils/init.py”,第 6 行,在 从 。导入 conv_utils 文件“/usr/local/lib/python3.6/dist-packages/keras/utils/conv_utils.py”,第 9 行,在 from .. 将后端导入为 K 文件“/usr/local/lib/python3.6/dist-packages/keras/backend/init.py”,第 1 行,在 从 .load_backend 导入 epsilon 文件“/usr/local/lib/python3.6/dist-packages/keras/backend/load_backend.py”,第 89 行,在 从 .tensorflow_backend 导入 * 文件“/usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py”,第 5 行,在 将张量流导入为 tf 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/init.py”,第 24 行,在 from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/init.py”,第 49 行,在 从 tensorflow.python 导入 pywrap_tensorflow 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow.py”,第 74 行,在 引发 ImportError(味精) ImportError: Traceback (最近一次调用最后一次): 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow.py”,第 58 行,在 从 tensorflow.python.pywrap_tensorflow_internal 导入 * 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py”,第 28 行,在 _pywrap_tensorflow_internal = swig_import_helper() 文件“/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py”,第 24 行,在 swig_import_helper _mod = imp.load_module('_pywrap_tensorflow_internal', fp, 路径名, 描述) 文件“/usr/lib/python3.6/imp.py”,第 243 行,在 load_module return load_dynamic(名称,文件名,文件) 文件“/usr/lib/python3.6/imp.py”,第 343 行,在 load_dynamic 返回_load(规格) ImportError:libcublas.so.10.0:无法打开共享对象文件:没有这样的文件或目录

无法加载原生 TensorFlow 运行时。

【问题讨论】:

【参考方案1】:

更新:我错过了关于这个在 google colabs 上的部分。请参阅@Jakevdp 答案。

我将把这个答案留在这里,以防其他人碰巧在他们自己的机器上遇到这个问题。

让我们从您的错误开始。 tensorflow 需要libcublas.so.10.0,但它要么未安装,要么位于意外位置(您的 python 脚本无权访问的位置)。 cublas 是 blas 线性代数例程的 NVIDIA cuda 实现,所以如果你没有 NVIDIA 显卡,使用它没有意义,你应该切换到非 gpu tensorflow。

否则,请确保您拥有所有 dependencies listed here(NVIDIA 驱动程序、CUDNN、CUDA 工具包),并且您已将 LD_LIBRARY_PATH 设置为包含 CUPTI 位置(在参考文献中列为 @987654326 @. 有了所有这些部分,您应该能够!pip install tensorflow-gpu 并让一切正常运行。

启动和运行 GPU 加速可能会很痛苦,尤其是在您不习惯处理库文件的情况下。如果您想使用 Enthought 的 conda 程序进行安装,而不是按照上面的说明进行安装,我相信他们会将相关的 cuda 库作为软件包的一部分提供。

为了让事情正常运行,您可以尝试

!pip uninstall tensorflow-gpu
!pip install tensorflow
!pip install keras
!pip install opencv-python
!pip install imageai --upgrade
!unzip apple_detection_dataset.zip
!python apple_detection_training.py

仅在 CPU 上运行学习模型。

【讨论】:

【参考方案2】:

cublas 库在 Colab 的 CPU 运行时中不可用,但在 GPU 运行时中可用。您应该更改为 GPU 运行时(Runtime->Change Runtime Type 并选择 Hardware Accelerator->GPU),然后再次尝试您的脚本。

【讨论】:

以上是关于Google Colaboratory ImportError: libcublas.so.10.0: cannot open shared object file: No such file or 的主要内容,如果未能解决你的问题,请参考以下文章

使用本地 GPU 的 Google Colaboratory 本地运行时

Colaboratory:我可以访问我的 Google 云端硬盘文件夹和文件吗?

将数据导入 Google Colaboratory

使用 Google 的 Colaboratory,每次打开文档时都需要安装软件包吗?

从Google Colaboratory访问Google Team Drive中的数据

使用 Google Colaboratory 时未显示图表 [重复]