页面树结构

2017-11-09 ApacheCN 开源组织,第二期邀请成员活动,一起走的更远 : http://www.apachecn.org/member/209.html


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

TensorFlow提供在Go程序中使用的API。这些API特别适合加载在Python中创建的模型,并在Go应用程序中执行它们。本指南介绍如何安装和设置 TensorFlow Go软件包

警告: TensorFlow API API 不在 TensorFlow API稳定性保证范围内

 

支持的平台

您可以在以下操作系统上安装TensorFlow for Go:

  • Linux的
  • Mac OS X

 

安装

TensorFlow for Go取决于TensorFlow C库。采取以下步骤安装此库并启用TensorFlow for Go:

  1. 决定是否只在CPU或GPU的帮助下运行TensorFlow for Go。为了帮助您决定,请阅读以下指南之一标题为“确定要安装的TensorFlow”的部分。

  2.  /usr/local/lib通过调用以下shell命令,下载并提取TensorFlow C库:

     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.1.0.tar.gz" |
     sudo tar -C $TARGET_DIRECTORY -xz 
    tar命令将TensorFlow C库提取到lib 子目录中TARGET_DIRECTORY。例如,指定/usr/localTARGET_DIRECTORY使tar提取TensorFlow C库成/usr/local/lib

    如果您希望将库提取到不同的目录中,请进行相应的调整TARGET_DIRECTORY

  3. 在步骤2中,如果您指定了系统目录(例如/usr/localTARGET_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
    去测试github.com/tensorflow/tensorflow/tensorflow/go

     

如果go getgo test生成错误消息,搜索(或发布到) StackOverflow 可能的解决方案。

 

Hello World

安装TensorFlow对围棋后,输入以下代码到一个文件名为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源代码中构建TensorFlow for Go,并按照 单独文档中的说明进行操作

  • 无标签