TensorFlow提供了在Go程序中使用的API。这些API适用于加载在Python中创建的模型并在Go应用程序中执行。本指南介绍如何安装和设置TensorFlow Go包。
警告:TensorFlow Go API没有TensorFlow API稳定性保证。
您可以在以下操作系统上安装TensorFlow for Go:
安装
TensorFlow for Go取决于TensorFlow C库。按照以下步骤安装此库并启用TensorFlow for Go:
-
确定是否需要GPU支持,参阅“确定要安装的TensorFlow”的部分。
- 在Ubuntu(LINUX)上安装TensorFlow
- 在Mac OS X上安装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安装。