當前位置: 首頁>>技術教程>>正文


安裝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/zh-tw/article/3624.html,未經允許,請勿轉載。