本文出自 掘金翻譯計劃 正在組織翻譯的 TensorFlow 官方文件。如果您有興趣,歡迎 申請成為譯者,學習完譯者教程後,參與到文章和文件的翻譯和及對當中。我們也正在招募 TensorFlow 譯者,歡迎積極參加。
TensorFlow 在 c_api.h
中定義了一套 C API,用來提供適合於建立和其他語言的繫結.
這套 API 傾向於簡單性和一致性,而不是方便。
支援的平臺
你可能會在下面的作業系統上安裝用於 C 的 TensorFlow:
- Linux
- Mac OS X
安裝
採取下面幾步來安裝用於 C 的 TensorFlow 庫,然後開啟用於 C 的 TensorFlow:
- 選擇你將會僅僅執行用於 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} 複製程式碼
- 通過呼叫下面的 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
。
- 在上一步中,如果你指定了一個系統目錄(比如,
/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 尋找或者請求可能的解決方案.
掘金翻譯計劃 是一個翻譯優質網際網路技術文章的社群,文章來源為 掘金 上的英文分享文章。內容覆蓋 Android、iOS、前端、後端、區塊鏈、產品、設計、人工智慧等領域,想要檢視更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。