Python代碼tensorflow模型。客戶端的例子:如何喂輸入串與形狀=使用golang
loaded_model = tf.saved_model.loader.load(sess, ["serve"], '/tmp/model/export/Servo/1506084916')
input_dict, output_dict =_signature_def_to_tensors(loaded_model.signature_def['default_input_alternative:None'])
start = datetime.datetime.now()
out = sess.run(output_dict, feed_dict={input_dict["inputs"]: ("I went and saw this movie last night",)})
print(out)
print("Time all: ", datetime.datetime.now() - start)
但golang客戶端無法正常工作:
m, err := tf.LoadSavedModel("/tmp/model/export/Servo/1506084916", []string{"serve"}, &tf.SessionOptions{})
if err != nil {
panic(fmt.Errorf("load model: %s", err))
}
data := "I went and saw this movie last night"
t, err := tf.NewTensor([]string{data})
if err != nil {
panic(fmt.Errorf("tensor err: %s", err))
}
fmt.Printf("tensor: %v", t.Shape())
output, err = m.Session.Run(
map[tf.Output]*tf.Tensor{
m.Graph.Operation("save_1/StringJoin/inputs_1").Output(0): t,
}, []tf.Output{
m.Graph.Operation("linear/binary_logistic_head/predictions/classes").Output(0),
}, nil,
)
if err != nil {
panic(fmt.Errorf("run model: %s", err))
}
我得到了錯誤:
panic: run model: You must feed a value for placeholder tensor 'Placeholder' with dtype string and shape [?] [[Node: Placeholder = Placeholder_output_shapes=[[?]], dtype=DT_STRING, shape=[?], _device="/job:localhost/replica:0/task:0/cpu:0"]]
我怎樣才能呈現shape=[?]
張量golang?或者我需要改變python訓練腳本的輸入格式?
UPD:
此字符串"save_1/StringJoin/inputs_1"
我跑這條巨蟒代碼後收到:
for n in sess.graph.as_graph_def().node:
if "inputs" in n.name:
print(n.name)
輸出:
transform/transform/inputs/review/Placeholder
transform/transform/inputs/review/Identity
transform/transform/inputs/label/Placeholder
transform/transform/inputs/label/Identity
transform/transform_1/inputs/review/Placeholder
transform/transform_1/inputs/review/Identity
transform/transform_1/inputs/label/Placeholder
transform/transform_1/inputs/label/Identity
save_1/StringJoin/inputs_1
save_2/StringJoin/inputs_1
你肯定'save_1/StringJoin/inputs_1'與'input_dict [「inputs」]''是相同的嗎? – nessuno
我更新了有關「save_1/StringJoin/inputs_1」的信息。我嘗試了其他鍵,但結果相同 - 錯誤。 –
你可以顯示'print(input_dict [「inputs」])''的輸出嗎? – nessuno