Si tensorflow.saved_model.savej'enregistre mon modèle à l'aide de la fonction au format SavedModel, comment puis-je récupérer les Ops Tensorflow utilisées dans ce modèle par la suite. Comme le modèle peut être restauré, ces opérations sont stockées dans le graphique, ma supposition est dans le saved_model.pbfichier. Si je charge ce protobuf (donc pas le modèle entier), la partie bibliothèque du protobuf les répertorie, mais cela n'est pas documenté et étiqueté comme une fonctionnalité expérimentale pour l'instant. Les modèles créés dans Tensorflow 1.x n'auront pas cette partie.
Alors, quel est un moyen rapide et fiable pour récupérer une liste des opérations utilisées (comme MatchingFilesou WriteFile) à partir d'un modèle au format SavedModel?
En ce moment, je peux geler le tout, comme le tensorflowjs-converterfait. Comme ils vérifient également les opérations prises en charge. Cela ne fonctionne pas actuellement lorsqu'un LSTM est dans le modèle, voir ici . Y a-t-il une meilleure façon de le faire, car les opérations sont définitivement là-dedans?
Un exemple de modèle:
class FileReader(tf.Module):
@tf.function(input_signature=[tf.TensorSpec(name='filename', shape=[None], dtype=tf.string)])
def read_disk(self, file_name):
input_scalar = tf.reshape(file_name, [])
output = tf.io.read_file(input_scalar)
return tf.stack([output], name='content')
file_reader = FileReader()
tf.saved_model.save(file_reader, 'file_reader')
Attendu en sortie tous les Ops, contenant dans ce cas au moins:
ReadFilecomme décrit ici- ...
saved_modelvariable dans votre dernier exemple? Résultat tf.saved_model.load('/path/to/model')ou chargement du protobuf du fichier saved_model.pb.
saved_model.pb, est - il untf.GraphDefou unSavedModelmessage protobuf? Si vous avez untf.GraphDefappelégd, vous pouvez obtenir la liste des opérations utilisées avecsorted(set(n.op for n in gd.node)). Si vous avez un modèle chargé, vous pouvez le fairesorted(set(op.type for op in tf.get_default_graph().get_operations())). Si c'est unSavedModel, vous pouvez l'obtenirtf.GraphDef(par exemplesaved_model.meta_graphs[0].graph_def).