当前位置: 首页>>技术教程>>正文


安装TensorFlow Go语言版

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:

  1. 确定是否需要GPU支持,参阅“确定要安装的TensorFlow”的部分。

  2. 下载并提取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/localTARGET_DIRECTORY会导致tar将TensorFlow C库提取到/usr/local/lib

  3. 在步骤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
  4. 安装了TensorFlow C库之后,调用go get下载适当的软件包及其依赖:

    go get github.com/tensorflow/tensorflow/tensorflow/go
  5. 调用go test验证TensorFlow for Go的安装:

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

如果go getgo 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安装

参考资料

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/3624.html,未经允许,请勿转载。