本文出自 掘金翻譯計劃 正在組織翻譯的 TensorFlow 官方文檔。若是您有興趣,歡迎 申請成爲譯者,學習完譯者教程後,參與到文章和文檔的翻譯和及對當中。咱們也正在招募 TensorFlow 譯者,歡迎積極參加。前端
TensorFlow 提供了 Go 程序中能夠調用的 API。這些 API 很是適合加載 Python 建立的模型以及在 Go 應用中執行。本文將介紹如何安裝和配置 TensorFlow Go 包。linux
警告: TensorFlow Go 語言 API 並不屬於 TensorFlow API 穩定性保障。android
你能夠在下面的操做系統上安裝 Go 版本 TensorFlow:ios
Go 版本 TensorFlow 依賴於 TensorFlow C 語言庫。按照下面的步驟安裝這個庫並啓用 TensorFlow:git
決定在運行 TensorFlow 時僅僅啓用 CPU 仍是和 GPU 一塊兒啓用。爲了幫助你作這個決定,請閱讀如下指南中的「決定安裝哪一個 TensorFlow 」部分:github
經過執行如下命令下載並解壓 TensorFlow C 語言庫到 /usr/local/lib
目錄:c#
TF_TYPE="cpu" # Change to "gpu" for GPU support
TARGET_DIRECTORY='/usr/local'
curl -L \
"https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-${TF_TYPE}-$(go env GOOS)-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
來配置連接。例如:api
sudo ldconfig
若是你指定的 TARGET_DIRECTORY
不是一個系統目錄(好比 ~/mydir
),那麼你必需要將這個解壓目錄(好比 ~/mydir/lib
)添加到下面這兩個環境變量中:session
export LIBRARY_PATH=$LIBRARY_PATH:~/mydir/lib # 用於 Linux 和 Mac OS X export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/mydir/lib # 僅用於 Linux export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:~/mydir/lib # 僅用於 Mac OS X
如今 TensorFlow C 語言庫已經安裝好了,執行 go get
來下載對應的包和相應的依賴:
go get github.com/tensorflow/tensorflow/tensorflow/go
執行 go test
來驗證 Go 版本 TensorFlow 是否安裝成功:
go test github.com/tensorflow/tensorflow/tensorflow/go
若是 go get
或者 go test
產生錯誤信息了,能夠在 StackOverflow 上經過搜索和提問來獲取可能的解決方法。
安裝完 Go 版本 TensorFlow 以後,在 hello_tf.go
文件中輸入下面的代碼:
package main
import (
tf "github.com/tensorflow/tensorflow/tensorflow/go"
"github.com/tensorflow/tensorflow/tensorflow/go/op"
"fmt"
)
func main() {
// Construct a graph with an operation that produces a string constant.
s := op.NewScope()
c := op.Const(s, "Hello from TensorFlow version " + tf.Version())
graph, err := s.Finalize()
if err != nil {
panic(err)
}
// Execute the graph in a session.
sess, err := tf.NewSession(graph, nil)
if err != nil {
panic(err)
}
output, err := sess.Run(nil, []tf.Output{c}, nil)
if err != nil {
panic(err)
}
fmt.Println(output[0].Value())
}
複製代碼
關於 TensorFlow Go 語言的進階示例請查看 example in the API documentation,這個例子使用了一個經過 TensorFlow 預訓練的模型來標記圖片的內容。
經過調用下面的命令來運行 hello_tf.go
:
go run hello_tf.go Hello from TensorFlow version number
這個程序可能會輸出相似下面的警告信息,你能夠忽略它們:
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use *Type* instructions, but these are available on your machine and could speed up CPU computations.
TensorFlow 是開源的。你能夠按照這個單獨的文檔中的指引使用 TensorFlow 的源碼來編譯 Go 版本 TensorFlow 。
掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 Android、iOS、前端、後端、區塊鏈、產品、設計、人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。