安装适用于 C 的 TensorFlow
TensorFlow 在 c_api.h
中定义了一套 C 语言 API,用于构建其它语言的封装。这套 API 除了使用方便外,还将保持易用性与一致性。
支持的平台
本指南解释了如何安装 TensorFlow C 语言版。尽管本指南也可能适用于其它的安装环境,但我们仅测试(也仅确保)了本指南在以下环境机器中的适用性:
- Linux, 64-bit, x86
- macOS X, Version 10.12.6 (Sierra) 或更高版本
安装
请按照以下步骤安装 TensorFlow C 语言库并启用 TensorFlow C 语言版:
1.确定你是只在 CPU(s) 上运行 TensorFlow C 语言版,还是在 GPU(s) 的协助下运行。如果无法确定,请在以下指南中阅读“决定安装哪个 TensorFlow”一节:
- 在 Ubuntu 上安装 TensorFlow
-
2.通过调用下面的 shell 命令,下载并且解压 TensorFlow 的 C 语言库到
/usr/local/lib
:TF_TYPE="cpu" # Change to "gpu" for GPU support OS="linux" # Change to "darwin" for macOS TARGET_DIRECTORY="/usr/local" curl -L \ "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-${TF_TYPE}-${OS}-x86_64-1.8.0.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
。
3. 在上一步中,如果你指定了一个系统目录(比如,/usr/local
)作为 TARGET_DIRECTORY
,那么请运行 ldconfig
配置链接器。例如:
sudo ldconfig
如果你指定了一个非系统目录作为 TARGET_DIRECTORY
(比如,~/mydir
),那么你必须将你的解压目录(比如,~/mydir/lib
)添加到以下两个环境变量中。例如:
export LIBRARY_PATH=$LIBRARY_PATH:~/mydir/lib # For both Linux and macOS X export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/mydir/lib # For Linux only export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:~/mydir/lib # For macOS 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 寻求解决方案。