gpt4 book ai didi

python - python中的模型训练和Golang中的模型运行,模型导入过程中的问题

转载 作者:行者123 更新时间:2023-12-01 22:20:16 25 4
gpt4 key购买 nike

我安装了 TensorFlow (2.3) 的最新版本,在 Python 下运行良好,但在 Golang 下却出现异常:

... but does not contain package github.com/tensorflow/tensorflow/tensorflow/go/core/protobuf/for_core_protos_go_proto


通过将版本更改为 1.15.0,我让 TensorFlow 与 Golang 一起使用
现在,我面临以下问题:
带有 TensorFlow 2.3 的 Python 代码
import tensorflow as tf

df = pd.read_csv(data_path, sep=';')
X = df[df.columns[:8]]
y = df[df.columns[8:-1]]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)

model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8, activation='relu', name="inputNode"))
model.add(tf.keras.layers.Dense(150, activation='relu'))
model.add(tf.keras.layers.Dense(3, name="inferNode"))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=500)

tf.keras.models.save_model(model=model, filepath='./', save_format='tf')
使用 TensorFlow 1.15.0 的 Golang 代码
model, err := tf.LoadSavedModel("./", []string{"serve"}, nil)
if err != nil {
fmt.Printf("Error loading saved model: %s\n", err.Error())
return
}
defer model.Session.Close()
data := [][]float32{make([]float32, 8)}
data[0][0] = 1.0
data[0][1] = 1.0
data[0][2] = 1.0
data[0][3] = 1.0
data[0][4] = 1.0
data[0][5] = 1.0
data[0][6] = 1.0
data[0][7] = 1.0
tensor, _ := tf.NewTensor(data)

result, err := model.Session.Run(
map[tf.Output]*tf.Tensor{
model.Graph.Operation("inputNode_input").Output(0): tensor, // Replace this with your input layer name
},
[]tf.Output{
model.Graph.Operation("inferNode").Output(0), // Replace this with your output layer name
},
nil,
)

if err != nil {
fmt.Printf("Error running the session with input, err: %s\n", err.Error())
return
}

fmt.Printf("Result value: %v \n", result[0].Value())
golang 抛出这个异常:
-- FAIL: TestMlPredict (6.93s)
panic: nil-Operation. If the Output was created with a Scope object, see Scope.Err() for details. [recovered]
panic: nil-Operation. If the Output was created with a Scope object, see Scope.Err() for details.
这是一个示例特征向量
header:   20         15           10          5           0       branch1   branch2     branch3     output1     output2     output3     
data: 2.518878 3.778791 5.021497 5.559673 5.402780 0.0 0.109421 0.109253 0.0 0.0 1.0
我究竟做错了什么?输入和输出名称应该是正确的。

最佳答案

实际上,我在我维护的 TensorFlow 的一个分支中修复了第一个问题,其中包含所有已编译的 protobuf。 fork 是包 galeone/tfgo 的依赖项并使用 go mod 自动下载.
你试试

go get github.com/galeone/tfgo
您将能够使用 tensorflow/go 和 tensorflow/op 包 + tfgo 的所有附加功能。

关于python - python中的模型训练和Golang中的模型运行,模型导入过程中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63950570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com