【发布时间】:2017-01-17 06:43:11
【问题描述】:
无法导入现有模块,使用 Ubuntu 16.04、python 3.5、Anaconda 4.2.15、tensorflow 0.12。
TensorFlow 包包含一个名为 mnist.py 的帮助程序 module。我已经验证该文件存在于我的机器上,并手动将目录添加到sys.path。当我尝试导入模块时,python 似乎找不到它。我可以import tensorflow as tf 就好了,但是 python 似乎在错误的目录中寻找模块,尽管我已经明确地给了它正确的位置:
>>> import tensorflow.contrib.learn.python.learn.datasets.mnist
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/tensorflow/contrib/__init__.py", line 25, in <module>
from tensorflow.contrib import cudnn_rnn
File "/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/tensorflow/contrib/cudnn_rnn/__init__.py", line 21, in <module>
from tensorflow.contrib.cudnn_rnn.python.ops.cudnn_rnn_ops import CudnnGRU
File "/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/tensorflow/contrib/cudnn_rnn/python/ops/cudnn_rnn_ops.py", line 28, in <module>
resource_loader.get_path_to_datafile("_cudnn_rnn_ops.so"))
File "/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/tensorflow/contrib/util/loader.py", line 42, in load_op_library
ret = load_library.load_op_library(path)
File "/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/load_library.py", line 64, in load_op_library
None, None, error_msg, error_code)
tensorflow.python.framework.errors_impl.NotFoundError: /home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/tensorflow/contrib/cudnn_rnn/python/ops/_cudnn_rnn_ops.so: cannot open shared object file: No such file or directory
验证文件
ls -l ~/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets
total 44
-rw-rw-r-- 2 rh rh 4660 Dec 1 12:09 base.py
drwxrwxr-x 3 rh rh 4096 Jan 12 19:57 data
-rw-rw-r-- 2 rh rh 2126 Dec 1 12:09 __init__.py
-rw-rw-r-- 2 rh rh 1334 Dec 1 12:09 load_csv_test.py
-rw-rw-r-- 2 rh rh 8308 Dec 1 12:09 mnist.py
-rw-rw-r-- 2 rh rh 1317 Dec 1 12:09 produce_small_datasets.py
drwxrwxr-x 2 rh rh 4096 Jan 12 19:57 __pycache__
-rw-rw-r-- 2 rh rh 2745 Dec 1 12:09 text_datasets.py
验证路径
>>> sys.path
['', '/home/rh/Applications/Anaconda/anaconda3/lib/python35.zip',
'/home/rh/Applications/Anaconda/anaconda3/lib/python3.5',
'/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/plat-linux',
'/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/lib-dynload',
'/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages',
'/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/Sphinx-1.4.6-py3.5.egg',
'/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg',
'/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets']
张量流信息
$ conda list | grep tensorflow
tensorflow 0.12.0rc0 py35_0 jjhelmus
只有 1 个 Python 环境
$ conda env list
# conda environments:
#
root * /home/rh/Applications/Anaconda/anaconda3
$ type -p python
/home/rh/Applications/Anaconda/anaconda3/bin/python
我的源代码来自一个在 OSX 上完美运行的 tensorflow 教程,关于 Ubuntu 安装/环境的一些东西是不稳定的。 我一直在解决这个问题一段时间没有成功。这个相关的question 也没有解决这个问题。有什么建议吗?
【问题讨论】:
-
真正的问题是错误消息的最后一行
/home/rh/Applications/Anaconda/anaconda3/lib/python3.5/site-packages/tensorflow/contrib/cudnn_rnn/python/ops/_cudnn_rnn_ops.so: cannot open shared object file: No such file or directory。有没有可能你安装了 GPU 版本而不安装 CUDA 和 cuDNN? -
我的 GPU 是 ATI,所以没有安装任何 CUDA 的东西。我从 Py3.5 64 位安装程序
Anaconda3-4.2.0-Linux-x86_64.sh安装 Anaconda,从 Anaconda site 下载。 -
关于 GPU 可访问性,来自https://docs.continuum.io/accelerate/:“Accelerate 提供了对针对 Intel CPU 和 NVidia GPU 的性能进行了优化的数值库的访问”。它需要安装我没有的
accelerate包:$ conda list | grep accelerate返回空白。我找不到任何迹象表明库存 Anaconda 包含 GPU 可访问性。 -
你安装了哪个 tensorflow pip 包? - 我刚刚意识到你是通过 conda 安装的。 conda 中的软件包是社区维护的,所以我不确定那里可能有什么问题。您是否可以在干净的 conda 环境中尝试 pip 安装?命令应该是
pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp35-cp35m-linux_x86_64.whl
标签: tensorflow anaconda python-3.5 ubuntu-16.04 mnist