我遵循了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中,您拥有所有这些模型方法,即
predict
,evaluate
等。使用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/