code Python du modèle de train:Comment nourrir chaîne d'entrée avec la forme = à tensorflow modèle en utilisant golang
input_schema = dataset_schema.from_feature_spec({
REVIEW_COLUMN: tf.FixedLenFeature(shape=[], dtype=tf.string),
LABEL_COLUMN: tf.FixedLenFeature(shape=[], dtype=tf.int64)
})
Dans les prévisions de python fonctionnent très bien. Exemple de client:
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)
Mais client golang ne fonctionne pas:
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))
}
Je suis erreur:
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"]]
Comment puis-je présenter shape=[?]
tenseur avec golang? Ou j'ai besoin de changer le format d'entrée du script de formation python?
UPD:
Cette chaîne "save_1/StringJoin/inputs_1"
j'ai reçu après l'exécution de ce python-code:
for n in sess.graph.as_graph_def().node:
if "inputs" in n.name:
print(n.name)
Sortie:
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
Êtes-vous sûr que 'save_1/StringJoin/inputs_1' est le même vaue de 'input_dict [" entrées "]'? – nessuno
J'ai mis à jour le sujet avec des informations sur "save_1/StringJoin/inputs_1". J'ai essayé d'autres touches, mais le résultat était le même - erreur. –
Pouvez-vous montrer la sortie de 'print (input_dict [" entrées "])'? – nessuno