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安装。