介绍
Tensorflow并不是机器学习方面专用的库,而是一个使用图来表示计算的通用计算库。它的核心是用C++实现的,并且还有不同语言的绑定。
最近TensorFlow提供了Go语言的 API。这些API 特别适合加载 Python 中创建的模型,并在Go应用程序中执行它们。不过这些API还没有很稳定,目前也只是支持 Linux,Mac OSX平台。
Go语言绑定是一个非常有用的工具,它与Python绑定不同,用户不仅可以通过Go语言使用Tensorflow,还可以了解Tensorflow的底层实现。
安装
本文以 Mac 系统安装为例。
1、Mac OS X上安装 TensorFlow
安装 TensorFlow 有几种方式可以选择:
- virtualenv
- pip / pip3
- Docker
- installing from sources
安装 pip/pip3
本地安装 python 3.7 版本,所以默认为 pip3。个人建议安装 python 3 版本。
安装virtualenv
pip3 install --upgrade virtualenv
创建virtualenv环境
创建文件夹 : mkdir ~/tensorflow
运行如下命令:
virtualenv --system-site-packages -p python3 ~/tensorflow
激活virtualenv环境
source ~/tensorflow/bin/activate
会发现:
(tensorflow) ~$
安装TensorFlow 和所有激活TensorFlow所需要的包
然后运行下面的命令:
pip3 install --upgrade tensorflow
可能下载时间较长,耐心等待一下。
2、安装 TensorFlow 的 Go 客户端
下载并解压 TensorFlow C 库文件 到 /usr/local/lib
参考这个链接:https://www.tensorflow.org/install/lang_c?hl=zh-cn
我是把下载到本地并解压后到 TensorFlow C 库,移动到了/usr/local/lib下:
mv libtensorflow.so libtensorflow_framework.so tensorflow /usr/local/lib
C 库安装后,下载合适的包和依赖
可能需要时间较长,不要中断操作。
go get github.com/tensorflow/tensorflow/tensorflow/go
确认TensorFlow forGO 已经生效
go test github.com/tensorflow/tensorflow/tensorflow/go
返回如下命令,说明成功
ok github.com/tensorflow/tensorflow/tensorflow/go 0.116s
测试代码
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())
}
运行 hello_tf.go
go run hello_tf.go
运行结果如下:
Hello from TensorFlow version 1.12.0
总结
1、首先要安装 TensorFlow,有几种方式,本文采用的是 virtualenv 方式;
2、下载 TensorFlow C 库,并把解压后的文件放到 /usr/local/lib目录下,虽然官网上说可以换目录( https://www.tensorflow.org/install/lang_c?hl=zh-cn ),但是还是建议放在/usr/local/lib目录;
3、下载 Go 相关的包和依赖;
4、运行测试代码。