[譯] 安裝 Go 版本 Tensorflow

本文出自 掘金翻譯計劃 正在組織翻譯的 TensorFlow 官方文檔。若是您有興趣,歡迎 申請成爲譯者,學習完譯者教程後,參與到文章和文檔的翻譯和及對當中。咱們也正在招募 TensorFlow 譯者,歡迎積極參加。前端


TensorFlow 提供了 Go 程序中能夠調用的 API。這些 API 很是適合加載 Python 建立的模型以及在 Go 應用中執行。本文將介紹如何安裝和配置 TensorFlow Go 包linux

警告: TensorFlow Go 語言 API 並不屬於 TensorFlow API 穩定性保障android

支持的平臺

你能夠在下面的操做系統上安裝 Go 版本 TensorFlow:ios

  • Linux
  • Mac OS X

安裝

Go 版本 TensorFlow 依賴於 TensorFlow C 語言庫。按照下面的步驟安裝這個庫並啓用 TensorFlow:git

  1. 決定在運行 TensorFlow 時僅僅啓用 CPU 仍是和 GPU 一塊兒啓用。爲了幫助你作這個決定,請閱讀如下指南中的「決定安裝哪一個 TensorFlow 」部分:github

    • @{install_linux#determine_which_tensorflow_to_install在 Linux 中安裝 TensorFlow}
    • @{install_mac#determine_which_tensorflow_to_install在 macOS 中安裝 TensorFlow}
  2. 經過執行如下命令下載並解壓 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 就能夠了。後端

  3. 在第二步中,若是你指定了一個系統目錄(好比 /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
  4. 如今 TensorFlow C 語言庫已經安裝好了,執行 go get 來下載對應的包和相應的依賴:

    go get github.com/tensorflow/tensorflow/tensorflow/go
  5. 執行 go test 來驗證 Go 版本 TensorFlow 是否安裝成功:

    go test github.com/tensorflow/tensorflow/tensorflow/go

若是 go get 或者 go test 產生錯誤信息了,能夠在 StackOverflow 上經過搜索和提問來獲取可能的解決方法。

Hello World

安裝完 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 。


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOS前端後端區塊鏈產品設計人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索