Go: начало работы с TensorFlow

TensorFlow — это ML-framework от Google, который предназначен для проектирования, создания и изучения моделей глубокого обучения. Вы можете использовать TensorFlow, чтобы производить численные вычисления. Само по себе это не кажется специфичным, однако эти вычисления производятся с помощью data-flow графов. В этих графах, вершины представляют собой математические операции, в то время как ребра представляют собой данные, которые обычно представляются в виде многомерных массивов или тензоров, которые сообщаются между этими ребрами.

TensorFlow написан на Си. Подключение к другим языкам осуществляется через биндинги. Поэтому для работы с TensorFlow в систему должна быть установлена Си-библиотека. Существует 64-битная версия версии для Linux (CPU и GPU) и для MacOS.

Для установки в систему нужно будет распаковать архив в /usr/local/lib или в другую директории (надо не забыть добавить ее в LD_LIBRARY_PATH).

sudo tar -xz libtensorflow.tar.gz -C /usr/local

Устанавливаем биндинг для Golang со всеми зависимостями:

go get github.com/tensorflow/tensorflow/tensorflow/go

Проверяем работу инсталляции:

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

Пробуем получить версию библиотеки TensorFlow на Go

package main

import (
    tf "github.com/tensorflow/tensorflow/tensorflow/go"
    "github.com/tensorflow/tensorflow/tensorflow/go/op"
    "fmt"
)

func main() {
    // создаем граф с одной строковой константой
    s := op.NewScope()
    c := op.Const(s, "Hello from TensorFlow version " + tf.Version())
    graph, err := s.Finalize()
    if err != nil {
        panic(err)
    }

    // выполняем вычисления в сессии
    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 from TensorFlow version 1.11.0

 

25.10.2018









 
архив

подписка