J'essaie actuellement d'exporter un modèle TF textum en utilisant la PREDICT SIGNATURE. J'ai _Decode renvoyant un résultat d'une chaîne d'article de test passée, puis je passe cela à buildTensorInfo. C'est en fait une chaîne retournée.Obtenir l'erreur 'str' L'objet n'a pas d'attribut 'dtype' lors de l'exportation du modèle textsum pour TensorFlow Serving
Maintenant, quand j'exécute la logique textsum_export.py pour exporter le modèle, il arrive au point où est construit l'objet TensorInfo mais des erreurs avec la trace ci-dessous. Je sais que la signature PREDICT est généralement utilisée avec des images. Est-ce le problème? Est-ce que je ne peux pas l'utiliser pour le modèle Textsum parce que je travaille avec des cordes?
erreur est:
Traceback (most recent call last):
File "export_textsum.py", line 129, in Export
tensor_info_outputs = tf.saved_model.utils.build_tensor_info(res)
File "/usr/local/lib/python2.7/site-packages/tensorflow/python/saved_model/utils_impl.py", line 37, in build_tensor_info
dtype_enum = dtypes.as_dtype(tensor.dtype).as_datatype_enum
AttributeError: 'str' object has no attribute 'dtype'
La session TF où le modèle est exporté est ci-dessous:
with tf.Session(config = config) as sess:
# Restore variables from training checkpoints.
ckpt = tf.train.get_checkpoint_state(FLAGS.checkpoint_dir)
if ckpt and ckpt.model_checkpoint_path:
saver.restore(sess, ckpt.model_checkpoint_path)
global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1]
print('Successfully loaded model from %s at step=%s.' %
(ckpt.model_checkpoint_path, global_step))
res = decoder._Decode(saver, sess)
print("Decoder value {}".format(type(res)))
else:
print('No checkpoint file found at %s' % FLAGS.checkpoint_dir)
return
# Export model
export_path = os.path.join(FLAGS.export_dir,str(FLAGS.export_version))
print('Exporting trained model to %s' % export_path)
#-------------------------------------------
tensor_info_inputs = tf.saved_model.utils.build_tensor_info(serialized_tf_example)
tensor_info_outputs = tf.saved_model.utils.build_tensor_info(res)
prediction_signature = (
tf.saved_model.signature_def_utils.build_signature_def(
inputs={ tf.saved_model.signature_constants.PREDICT_INPUTS: tensor_info_inputs},
outputs={tf.saved_model.signature_constants.PREDICT_OUTPUTS:tensor_info_outputs},
method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME
))
#----------------------------------
legacy_init_op = tf.group(tf.tables_initializer(), name='legacy_init_op')
builder = saved_model_builder.SavedModelBuilder(export_path)
builder.add_meta_graph_and_variables(
sess=sess,
tags=[tf.saved_model.tag_constants.SERVING],
signature_def_map={
'predict':prediction_signature,
},
legacy_init_op=legacy_init_op)
builder.save()
print('Successfully exported model to %s' % export_path)
PREDICT travail de signature avec tenseurs, res_tensor = tf.convert_to_tensor (res) –
Gaurav vous êtes génial! Cela a fonctionné parfaitement. Je ne peux pas sembler mettre ce commentaire comme réponse mais vous devriez être celui pour obtenir le crédit. Si vous pouvez fournir votre commentaire ci-dessus en guise de réponse, je l'accepterai. Merci encore! – xtr33me