[譯] 系列教程:Installing TensorFlow for C

LeviDing發表於2017-12-01

本文出自 掘金翻譯計劃 正在組織翻譯的 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}
    複製程式碼
  2. 通過呼叫下面的 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前端後端區塊鏈產品設計人工智慧等領域,想要檢視更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章