针对 C++ 和 python 的 tensorflow 的 Inception v3 指南

Posted

技术标签:

【中文标题】针对 C++ 和 python 的 tensorflow 的 Inception v3 指南【英文标题】:Inception v3 guide on tensorflow broken for C++ and python 【发布时间】:2016-11-01 09:47:22 【问题描述】:

我正在按照此处的指南运行预训练的 inception v3 https://www.tensorflow.org/versions/r0.11/tutorials/image_recognition/index.html

但是,当我尝试 python 版本时,我得到:

python classify_image.py
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally
Traceback (most recent call last):
  File "classify_image.py", line 227, in <module>
    tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
TypeError: run() got an unexpected keyword argument 'argv'

好吧..没关系,让我试试 C++ 版本。

下载模型,运行bazel命令:

➜  tensorflow git:(master) ✗ bazel build tensorflow/examples/label_image/...
.......
ERROR: /storage/git/tensorflow/tensorflow/tensorflow.bzl:636:21: syntax error at '=': expected expression.
ERROR: /storage/git/tensorflow/tensorflow/tensorflow.bzl:711:1: nested functions are not allowed. Move the function to top-level.
ERROR: /storage/git/tensorflow/tensorflow/tensorflow.bzl:739:1: nested functions are not allowed. Move the function to top-level.
ERROR: /storage/git/tensorflow/tensorflow/tensorflow.bzl:773:1: nested functions are not allowed. Move the function to top-level.
ERROR: /storage/git/tensorflow/tensorflow/tensorflow.bzl:776:1: nested functions are not allowed. Move the function to top-level.
ERROR: com.google.devtools.build.lib.packages.BuildFileContainsErrorsException: error loading package '': Extension 'tensorflow/tensorflow.bzl' has errors.
INFO: Elapsed time: 0.600s

...那好吧。两者似乎都不起作用。或者也许我做错了。有人有任何指导吗? :)

在 Ubuntu 16 上使用 tensorflow 0.11,Anaconda 发行版 python 3.5

谢谢!

【问题讨论】:

如果有人感兴趣,只需删除 argv 命令即可轻松解决 python 问题。将其留在这里作为说明,应更改文档以反映这一点。 你能file a bug on Github 跟踪这个吗? 【参考方案1】:

如果对任何人有帮助:

解决 C++ 问题:将 Bazel 更新到正确的版本(您可能很久以前就安装了 tensorflow,而 git 拉取了最新版本,这需要新的 bazel 版本)

解决python问题:去掉argv命令。

【讨论】:

以上是关于针对 C++ 和 python 的 tensorflow 的 Inception v3 指南的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow C++ 评估性能比 Python 一更差

81TensorFlow 2 模型部署方法实践--TensorFlow Serving 部署模型

使用亚马逊的云服务器EC2做深度学习配置TensorFlow

写入终端和文件 c++

python简介

使用 C++ 针对 xsd 验证 xml