系列教程:Installing TensorFlow for C

系列教程:Installing TensorFlow for C

LeviDingLeviDing
本文出自 掘金翻译计划 正在组织翻译的 TensorFlow 官方文档。如果您有兴趣,欢迎 申请成为译者,学习完译者教程后,参与到文章和文档的翻译和及对当中。我们也正在招募 TensorFlow 译者,欢迎积极参加。

TensorFlow 在 c_api.h中定义了一套 C API,用来提供适合于建立和其他语言的绑定. 这套 API 倾向于简单性和一致性,而不是方便。

支持的平台

你可能会在下面的操作系统上安装用于 C 的 TensorFlow:

  • Linux
  • Mac OS X

安装

采取下面几步来安装用于 C 的 TensorFlow 库,然后打开用于 C 的 TensorFlow:

  1. 选择你将会仅仅运行用于 C 的 TensoFlow 在 CPU(S)上,还是有 GPU(S)的帮助。为了帮你做出选择,在以下指南中阅读这一节,标题为决定安装哪个TensorFlow”:

* @{$install_linux#determine_which_tensorflow_to_install$Installing TensorFlow on Linux}
* @{$install_mac#determine_which_tensorflow_to_install$Installing TensorFlow on Mac OS}

  1. 通过调用下面的 shell 命令,下载并且解压 TensorFlow 的 C 库到 /usr/local/lib
TF_TYPE="cpu" # Change to "gpu" for GPU support
OS="linux" # Change to "darwin" for Mac OS
TARGET_DIRECTORY="/usr/local"
curl -L \
  "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-${TF_TYPE}-${OS}-x86_64-1.4.0-rc0.tar.gz" |
  sudo tar -C $TARGET_DIRECTORY -xz

tar 命令会解压 TensorFlow C 库到 TARGET_DIRECTORY 的子目录 lib中。比如指定 /usr/local 作为 TARGET_DIRECTORY,那么 tar 就会解压TensorFlow C 库到 /usr/local/lib

如果你更希望解压库到不同的目录,那么相应的调整 TARGET_DIRECTORY

  1. 在上一步中,如果你指定了一个系统目录(比如,/usr/local)作为 TARGET_DIRECTORY,然后运行 ldconfig 配置链接器。 比如:
sudo ldconfig

如果你指定了一个 `TARGET_DIRECTORY` 而不是系统目录,(比如,`~/mydir`),那么你必须设定你的解压目录(比如,`~/mydir/lib`)到两个环境变量中。 比如:

export LIBRARY_PATH=$LIBRARY_PATH:~/mydir/lib # For both Linux and Mac OS X
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/mydir/lib # For Linux only
  export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:~/mydir/lib # For Mac OS X only

验证你的安装

在安装完成之后,新建文件,输入以下代码,文件命名为 hello_tf.c:

#include <stdio.h>
#include <tensorflow/c/c_api.h>

int main() {
  printf("Hello from TensorFlow C library version %s\n", TF_Version());
  return 0;
}

编译和运行

调用以下命令来编译 hello_tf.c

gcc hello_tf.c

运行生成的可执行文件应该输出以下消息:

a.out
Hello from TensorFlow C library version number

定位问题

如果程序编译失败,最有可能的错误是 gcc 找不到 TensorFlow C 库.解决这个问题的方法是为 gcc 指定 -I-L 选项.比如,TARGET_LIBRARY/usr/local,你应该这样调用 gcc

gcc -I/usr/local/include -L/usr/local/lib hello_tf.c -ltensorflow

如果执行 a.out 失败,你就要问问自己这几个问题了:

  • 这个程序编译有没有错误?
  • 是否按第三步 安装, 指定了正确的环境变量的目录?
  • 是否有正确的 export 这些环境变量?

如果你仍然会有编译或者运行的错误信息, 请到 StackOverflow 寻找或者请求可能的解决方案.


掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 AndroidiOS前端后端区块链产品设计人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划官方微博知乎专栏
文章被以下专栏收录
还没有评论