文档章节

安装TensorFlow for Go

片刻
 片刻
发布于 2017/06/13 21:45
字数 807
阅读 100
收藏 1

 

 

原文链接 : https://www.tensorflow.org/install/install_go

译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=10029605

贡献者 : 片刻 ApacheCN Apache中文网

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,并按照 单独文档中的说明进行操作

© 著作权归作者所有

共有 人打赏支持
片刻
粉丝 96
博文 268
码字总数 306559
作品 0
海淀
高级程序员
TensorFlow——快速安装

TensorFlow:2015年Google开源的机器学习框架 1、Anoconda安装 (1)Window,MacOS,Linux都已支持Tensorflow。 (2)Window用户只能使用python3.5(64bit)。MacOS,Linux支持python2.7和python3...

飞天小橘子
04/19
0
0
windows Anaconda TensorFlow

1、安装完成后,打开Anaconda Prompt,创建TensorFlow虚拟环境 在Prompt中输入: >>> conda create -n tensorflow python=3.5 2、进入TensorFlow环境,输入 >>> activate tensorflow 在命令行......

q595754733
06/28
0
0
入门系列之在Ubuntu 16.04上安装和使用TensorFlow

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由谢鸢 发表于云+社区专栏 介绍 TensorFlow是一款由Google构建的用于训练神经网络的开源机器学习软件。TensorFlow的神经网络...

腾讯云加社区
07/20
0
0
TensorFlow平台的搭建

一、TensorFlow介绍 TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数...

qq_39525832
05/28
0
0
第3章 TensorFlow入门

第3章 TensorFlow入门 TensorFlow是Google创造的数值运算库,作为深度学习的底层使用。本章包括: TensorFlow介绍 如何用TensorFlow定义、编译并运算表达式 如何寻求帮助 注意:TensorFlow暂...

优惠券发放
05/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
13分钟前
1
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
21分钟前
0
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
31分钟前
15
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
57分钟前
1
0
区块链技术中的那些能商用的企业级应用

WEPOWER是一家立陶宛初创企业,旨在改变可再生电力项目的付费方式。WePower公司创始人Nick Martyniuk表示,政府统一收购价的存在推动了全球风能与太阳能市场的发展。因此,他的公司希望帮助那...

问题终结者
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部