从this line我知道新添加的配置文件工具已导入,但看起来很奇怪:1)无法从交互式界面导入; 2)当在spyder中运行mnist示例时,我也会收到错误说ImportError: cannot import name 'tfprof_log_pb2'
。
我认为,因为张量流是在anaconda中进行的,然后它可能是一个旧版本,因此没有tfprof。但这只能解释为什么我不能直接在交互界面(不是在anaconda环境中)中运行from tensorflow.tools.tfprof import tfprof_log_pb2
,并且无法解释为什么当我在anaconda中运行它时会引发错误。它在spyder中引发了这个错误,那么支持tfprof的版本就应该存在。
答案 0 :(得分:1)
这两个答案都是正确的。
在 Ubuntu (python2.7和GPU)中,我采取捷径并将张量流从10更新为12:
std::string
在中国,我使用清华大学的镜子来加快安装速度
它顺利进行。
但是这似乎不适用于 Mac (至少对于python3.5和cpu而言),即使你的张量流版本是12或更高,该文件还没有生成(甚至其他那里已经列出了两个文件(
pip install \
-i https://pypi.tuna.tsinghua.edu.cn/simple/ \
https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp27-none-linux_x86_64.whl
)。所以我只是复制了那个文件(它必须和我的Ubuntu中的文件相同,对吗?)由Yaroslav Bulatov保护到文件夹。它可以工作。
答案 1 :(得分:1)
您的磁盘上是否有tfprof_log_pb2.py
?它是一个自动生成的文件,它不存在于源树中。相反,它被放置在bazel-genfiles
目录中,并且应该在build_pip_package.sh期间被复制到分发中
有this issue为其他工具修复了一些丢失的文件,我想知道tfprof文件是否逃脱了修复(即,如果它不是tools:all_files
目标的一部分)
BTW,来自我本地版本的文件的副本 - http://pastebin.com/dJnnWKuy
答案 2 :(得分:1)
如果python的protobuf比3.1.0更旧且TF也更旧,则会出现问题。我遇到了如下问题:
$ python
Python 2.7.10 (default, Jul 30 2016, 19:40:32)
>>> from tensorflow.tools.tfprof import tfprof_log_pb2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named tfprof
这就是我解决它的方法:
将setuptools更新到最新的32.x或更高版本(我这样做是因为我的TF安装无法将setuptools更新到32.x版本):
pip install update --user setuptools
之后我按如下方式安装了TF:
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.1-py2-none-any.whl
sudo pip install --upgrade $TF_BINARY_URL
您将注意到TF 12.1安装了以下内容:
Collecting tensorflow==0.12.1 from https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.1-py2-none-any.whl
Collecting numpy>=1.11.0 (from tensorflow==0.12.1)
Collecting protobuf>=3.1.0 (from tensorflow==0.12.1)
Collecting setuptools (from protobuf>=3.1.0->tensorflow==0.12.1)
TF安装成功后:
Successfully installed protobuf-3.1.0.post1 tensorflow-0.12.1
我尝试了第一个命令如下:
$ python
Python 2.7.10 (default, Jul 30 2016, 19:40:32)
>>> from tensorflow.tools.tfprof import tfprof_log_pb2
>>> tfprof_log_pb2
<module 'tensorflow.tools.tfprof.tfprof_log_pb2' from '/Library/Python/2.7/site-packages/tensorflow/tools/tfprof/tfprof_log_pb2.pyc'>