当前位置 博文首页 > go版tensorflow安装教程详解

    go版tensorflow安装教程详解

    作者:Bungula 时间:2021-02-01 06:04

    此文章基于ubuntu16.04

    先在这里贴上官方教程
    https://github.com/tensorflow/tensorflow/tree/master/tensorflow/go

    注意 安装go版的tensorflow时一定要先安装C版tensorflow且要部署好go语言

    c版tensorflow官方教程
    (Go 版本 TensorFlow 依赖于 TensorFlow C 语言库)
    按照官方的指导就可以,没什么坑,最好是官方指定位置,否则后面可能会有坑!

    安好后执行这个命令

    go get -d github.com/tensorflow/tensorflow/tensorflow/go

    可能会出现go get 找不到 google.golang.org/protobuf/×××××××××× 这类问题

    此时我们可以使用git clone命令,执行如下代码“https://github.com/protocolbuffers/protobuf-go.git”,将下载内容放入protobuf文件夹中,即把下载下来中的内容全部替换到出问题的protobuf目录,这可能是之前代码换地址导致的问题

    执行如下命令(下载下来后记得把文件替换,或者直接改名字把protobuf-go改成protobuf换目录)
    git clone https://github.com/protocolbuffers/protobuf-go.git

    如果找不到相应的目录可以用如下命令获取

     git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc
    
     git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net
    
     git clone https://github.com/golang/text.git $GOPATH/src/golang.org/x/text
    
     go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
    
     git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto

    如果找不到包

    "github.com/tensorflow/tensorflow/tensorflow/go/genop/internal/proto/github.com/tensorflow/tensorflow/tensorflow/go/core" in any of: /home/go/src/github.com/tensorflow/tensorflow/tensorflow/go/genop/internal/proto/github.com/tensorflow/tensorflow/tensorflow/go/core (from $GOROOT)

    此时我们可以执行以下命令尝试解决问题

    cd $GOPATH/src/github.com/tensorflow/tensorflow/tensorflow/go
      
     git checkout r1.11
      
     go get github.com/tensorflow/tensorflow/tensorflow/go

    也可以在 StackOverflow 上通过搜索和提问来获取可能的解决方法。

    如果go get成功 即不报错,可用如下命令测试

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

    Hello World


    安装完 Go 版本 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())
    }

    通过调用下面的命令来运行 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.

    参考

    [1]: https://blog.csdn.net/jj546630576/article/details/88179569
    [2]: https://www.cnblogs.com/personblog/p/13084723.html
    [3]: https://blog.csdn.net/qq_38431572/article/details/103671986

    js
    下一篇:没有了