TensorFlow提供了在Go程序中使用的API。這些API適用於加載在Python中創建的模型並在Go應用程序中執行。本指南介紹如何安裝和設置TensorFlow Go包。
警告:TensorFlow Go API沒有TensorFlow API穩定性保證。
支持的平台
您可以在以下操作係統上安裝TensorFlow for Go:
- Linux
- Mac OS X
安裝
TensorFlow for Go取決於TensorFlow C庫。按照以下步驟安裝此庫並啟用TensorFlow for Go:
-
確定是否需要GPU支持,參閱“確定要安裝的TensorFlow”的部分。
-
下載並提取TensorFlow C庫
/usr/local/lib
,通過調用以下shell命令: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.3.0.tar.gz" | sudo tar -C $TARGET_DIRECTORY -xz
該
tar
命令將TensorFlow C庫提取到lib
的子目錄TARGET_DIRECTORY
。例如,指定/usr/local
為TARGET_DIRECTORY
會導致tar
將TensorFlow C庫提取到/usr/local/lib
。 -
在步驟2中,如果指定了
係統
目錄(例如,/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
-
安裝了TensorFlow C庫之後,調用
go get
下載適當的軟件包及其依賴:go get github.com/tensorflow/tensorflow/tensorflow/go
-
調用
go test
驗證TensorFlow for Go的安裝:go test github.com/tensorflow/tensorflow/tensorflow/go
如果go get
或go test
生成錯誤消息,到StackOverflow尋找解決方案
Hello, World
安裝TensorFlow for Go後,將以下代碼輸入到一個名為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())
}
更高級的GO語言TensorFlow示例,請查看API文檔中的示例,例子中使用預訓練的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 for Go見Tensorflow GO安裝。