Keras,张量流在 sublime text 和 spyder 中导入错误,但在命令行中工作

Posted

技术标签:

【中文标题】Keras,张量流在 sublime text 和 spyder 中导入错误,但在命令行中工作【英文标题】:Keras, tensorflow importing error in sublime text and spyder but working in command line 【发布时间】:2019-05-16 07:21:52 【问题描述】:

在命令行中,一切似乎都很好。但是当我在 sublime text 或 spyder 中导入 tensorflow 时,会出现以下错误 -

import tensorflow as tf

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.9.0:无法打开共享对象文件:没有这样的文件或目录

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次): 文件“/home/himanshu/Desktop/iii.py”,第 1 行,在 将张量流导入为 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.9.0:无法打开共享对象文件:没有这样的文件或目录

当我导入 keras 时

import keras

以下是错误

使用 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.9.0:无法打开共享对象文件:没有这样的文件或目录

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次): 文件“/home/himanshu/Desktop/iii.py”,第 1 行,在 导入 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”,第 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.9.0:无法打开共享对象文件:没有这样的文件或目录

无法加载原生 TensorFlow 运行时。

注意 - 我在我的 python 包中使用 pip 而不是 conda

【问题讨论】:

似乎您的 IDE 使用的环境与命令行不同。你可以从命令行 python 和 Spyder 或 Sublime 的 python 中执行import sys; print(sys.executable) 吗? 同理-"/usr/bin/python3" 哦,我明白了。它找不到 cublas 库。这表明 lib 路径存在差异。你能在你的各种python版本中再次运行import os; print(os.environ['LD_LIBRARY_PATH'])吗? 这是在控制台上运行时的输出 - usr/local/cuda/lib64: 这是 Spyder - Traceback 的输出(最近一次调用最后一次):文件“”,第 1 行,在 import os; print(os.environ['LD_LIBRARY_PATH']) 文件“/home/himanshu/venv/deeplearning_keras/lib/python3.6/os.py”,第 669 行,在 getitem 中引发 KeyError(key)从无 KeyError:'LD_LIBRARY_PATH'] 【参考方案1】:

这通常发生在使用不同路径安装多个版本的 python 时。您可以通过打开 IDLE 终端并使用来检查是否有多个安装

import sys

sys.version
sys.path

这些命令将打印系统 PATH 和当前 python 实例的版本。在 IDLE 和命令行终端中都使用它来查看各自的不同之处。一旦你知道哪个版本是你想要的,然后删除另一个。您也可以删除所有 python 实例,然后重新安装一个干净的 python 环境,但是您必须使用 pip 重新安装所有模块。

【讨论】:

以上是关于Keras,张量流在 sublime text 和 spyder 中导入错误,但在命令行中工作的主要内容,如果未能解决你的问题,请参考以下文章

text 在张量流模型中转换keras模型

InternalError:流在完成之前没有阻塞主机;已经处于错误状态

TensorFlow 和 Keras 中的符号张量是啥?

Keras和张量流连接和拟合错误

Keras:如何使用来自另一个张量的信息对张量进行切片?

keras 的指标返回啥值?标量还是张量?