我遵循了https://www.tensorflow.org/tutorials/keras/text_classification上的TensorFlow教程并保存了模型。

我能够使用tfgo库成功导入到Go中:

package main

import (
    "fmt"

    tg "github.com/galeone/tfgo"
    tf "github.com/tensorflow/tensorflow/tensorflow/go"
)

func main() {
    model := tg.LoadModel("movie_reviews", []string{"serve"}, nil)
    root := tg.NewRoot()
    t := tg.NewTensor(root, tg.Const(root, [3]int32{1, 2, 3}))
    fake, _ := tf.NewTensor([3]int32{1, 2, 3})
    model.Exec([]tf.Output{t.Output}, map[tf.Output]*tf.Tensor{
        model.Op("input", 0): fake,
    })
    fmt.Println(model)
}

但是现在我不知道如何与之互动。在Python中,您拥有所有这些模型方法,即predictevaluate等。

使用Go绑定(bind),似乎您需要知道确切的操作名称才能与之交互?

我将如何得知?

最佳答案

是的,使用Go绑定(bind)和tfgo,您必须知道确切的操作名称。

顺便说一句,使用TensorFlow Python软件包随附的saved_model_cli CLI工具,可以直接在“serve”标签下获取所有名称。

saved_model_cli show --all --dir <path of your SavedModel>

对于SavedModel中可用的每个标记,它将为您提供所有需要的信息。对于您的情况,您必须使用键“serve”或“serving_default”查看signature_def

免责声明:我是tfgo软件包的作者。我还在TensorFlow 2.0的动手神经网络一书的第10章中讨论了这个主题,该节专门讨论SavedModel序列化格式。

关于python - 导入后如何在TFGO中与TF模型进行交互,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58702811/

10-13 09:07